linux 清理實時寫入的日志


  在服務運行過程中必然會設置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.加入定時任務即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM