1. 程式人生 > >日誌定時切割,以及定時刪除(2種方法)

日誌定時切割,以及定時刪除(2種方法)

安裝 完成 空格 sin tro rotate logrotate 編輯 通過

切割catalian日誌的方式有很多種,比如shell腳本的、cronolog或者通過配置log4j等等這些都可以實現。但今天我要介紹是使用logrotate來按日期生成日誌。

如果catalina.out的大小超過了2G,那麽tomcat可能在沒有錯誤提示的情況下崩潰、無法啟動。所以為了避免出現這個問題,我們應該每天分割catalina.out。

如何每天自動的分割catalina.out或者大小達到5M時切割catalina.out

1.第一種方法

#!/bin/sh
#需要進行分割log的路徑,該腳本一般只修改這個路徑就可以用
log_path=/home/webapp/tomcat/logs
#獲取當前日期
d
=date +%Y-%m-%d #獲取30天前的日期 d90=date -d30 day ago +%Y-%m-%d #cd到log_path路徑下 並copy 日誌文件到cron目錄下 cd ${log_path} && cp catalina.out catalina.out.$d.log #清空原日誌文件 echo > catalina.out #移除30天前的日誌文件 rm -rf $log_path/cron/catalina.out.${d90}.log

配置crontab定時任務,定時直接腳本文件。


crontab 
-e 打開crontab編輯; 編輯crontab每天晚上11點55分執行分割腳本 55 11 * * * sh 腳本目錄/**.sh :wq保存並退出。 crontab定時任務配置完成。 可以通過crontab -l 檢查是否設置成功

第二種:

1.新建一個文件

在/etc/logrotate.d/ 目錄下新建一個文件,命名隨意。

1 /etc/logrotate.d/tomcat

2.復制下面的語句至上文新建的文件中

1 /var/log/tomcat/catalina.out {   copytruncate   daily   rotate 7   compress   missingok   size 5M  }

各個配置的具體含義:

  • 確保/var/log/tomcat/catalina.out指向你服務器中的catalina.out的地址
  • daily - 每天切割
  • rotate - 保留最多七個文件
  • compress - 壓縮分割後的文件
  • size - 當catalina.out大於5M時分割

如何起作用

  1. 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
  2. 這個會觸發/etc/cron.daily/logrotate文件,logrotate一般是隨linux按安裝的。它會執行這個命令-“/etc/sbin/logrotate /etc/logrotate.conf”(註意空格)
  3. /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本
  4. 這個會觸發上一步你寫的/etc/logrotate.d/tomcate文件

手動執行logrotate

執行以下語句來手動運行cron任務

1 /usr/sbin/logrotate /etc/logrotate.conf

logrotate的更多操作

1 man logrotate

日誌定時切割,以及定時刪除(2種方法)