stdout redirection應用問題 - Linux
By Kristin
at 2021-12-23T21:13
at 2021-12-23T21:13
Table of Contents
※ 引述《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 #每天
另外再排程清理比較舊的檔
--
: 我寫了一支長時間運行的程式,在運行過程中會持續產生訊息至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 #每天
另外再排程清理比較舊的檔
--
Tags:
Linux
All Comments
By Heather
at 2021-12-24T01:41
at 2021-12-24T01:41
Related Posts
read cmd 超乎預期求原因
By Dorothy
at 2021-12-22T12:08
at 2021-12-22T12:08
安裝dhcp
By Dora
at 2021-12-21T10:12
at 2021-12-21T10:12
LDAP SSSD Client 問題
By Faithe
at 2021-12-17T15:39
at 2021-12-17T15:39
Redhat7.2 usb碟無法讀取
By Anonymous
at 2021-12-10T09:39
at 2021-12-10T09:39
Ubuntu21.10哪個輸入法能自訂碼表?
By Kumar
at 2021-12-01T21:51
at 2021-12-01T21:51