Re: [問題] stdout redirection應用問題

看板Linux作者 (pank)時間2年前 (2021/12/23 21:13), 編輯推噓0(001)
留言1則, 1人參與, 2年前最新討論串2/2 (看更多)
※ 引述《icetofux ()》之銘言: : 我寫了一支長時間運行的程式,在運行過程中會持續產生訊息至stdout,我不想太 : 頻繁的讀寫儲存空間,所以我目前以 : $my_app > /dev/shm/my_app.log : 的方式運行程式,將訊息輸出到記憶體構成的檔案系統中,當想要看即時訊息時以 : $tail -f /dev/shm/my_app.log : 的方式將輸出訊息顯示到終端,目前運行的還不錯,但考慮到如果程式持續運行超過 : 一個月,我的/dev/shm/可能會不夠,請問有沒有什麼方法讓my_app.log在超過指定 : 行數的時候,清除最頂端開始的n行呢? : 謝謝。 建立一個 script /usr/local/bin/log-dispatch.sh 由它幫你分檔,下面的例子是以分為檔案 #!/bin/sh while read -r LINE do echo `date`,$LINE >> /dev/shm/`date +%Y%m%d%H%M`.log done 根據 log 量可調整切檔週期 date +%Y%m%d%H #每小時 date +%Y%m%d #每天 另外再排程清理比較舊的檔 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.197.200 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1640265221.A.7DC.html

12/25 19:54, 2年前 , 1F
使用是 my_app | /usr/local/bin/log-dispatch.sh
12/25 19:54, 1F
文章代碼(AID): #1Xn7O5VS (Linux)
文章代碼(AID): #1Xn7O5VS (Linux)