天天看點

定時删除線上日志

接手的項目日志的量太大,經常讓機器磁盤報警,頻率非常高,檢視後發現并不是所有的日志檔案都很大,而是某幾個日志檔案比較大,使用的是dailyrollingfileappender,每天都會産生一個大的日志檔案,格式基本是檔案名加日期,<code>cndata.log.2016-09-27</code>,這幾個日志檔案也不太重要,是以想用定時任務當磁盤使用率到達一定的數量後自動删除這些大的日志檔案。這是一個治标的辦法,可以省去删日志的時間,但是日志這麼多還是要優化下。

在機器上執行 <code>sudo crontab -u root -e</code>指令,在編輯視窗新增

/home/lq/delete_log.sh 是腳本的路徑,-c表示磁盤使用率到多少開始删除日志,-f表示需要删除的日志檔案名,多個日志檔案用逗号分隔,-p表示日志所在檔案夾的路徑,-b表示從哪天開始删除,1表示昨天,2表示前天,以此類推,-l表示需要删除幾天的日志量。

我這邊配置的表示每10分鐘執行一次删除日志工作,如果磁盤容量到達80%,就删除昨天、前天、大前天的hbase.log和cndata.log日志

通過<code>sudo crontab -u root -l</code>可以檢視任務是否添加成功

通過<code>sudo /sbin/service crond reload</code>指令可以手動重新加載定時任務