在服務運行過程中必然會設置log 來記錄其運行日志,對於日志信息,如果不進行處理的話,日積月累會占用大量的磁盤空間
而且對於那些不重要的log 信息,也需要及時清理掉.
記錄自己處理某實時服務產生的log 過程.
方式一:(一天日志量不大)
如果該服務一天產生的日志量不是很大的話,可以直接保留一天的日志
#!/bin/bash date1=`date -d 'last day' +'%Y%m%d'` date3=`date -d '3 days ago' +'%Y%m%d'` cp ./run.log ./log/${date1}_run.log cat /dev/null > ./run.log rm -f ./log/${date3}_run.log
說明:執行 cat /dev/null > ./run.log 的時候,不會影響日志的實時寫入,將此腳本加入定時,每天凌晨執行即可
方式二:(一天的日志量較大)
如果該服務一天產生的日志量較大的話,就不適合按天來進行處理
#!/bin/bash date1=`date -d 'last day' +'%Y%m%d'` date3=`date -d '3 days ago' +'%Y%m%d'` split -b 1048576000 -d -a 3 run.log ./log/${date1}_run_.log_ cat /dev/null > ./run.log rm -f ./log/${date3}_run.log*
說明:
1.split -b 標明按多大文件(字節數)進行切分,此處為1G
2.-d -a 3 指定切分后生成文件序列的位數為3位,比如001、002,實例結果如下:
3.加入定時任務即可