日誌定時切割,以及定時刪除(2種方法)
阿新 • • 發佈:2018-10-08
安裝 完成 空格 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 -d‘30 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時分割
如何起作用
- 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
- 這個會觸發/etc/cron.daily/logrotate文件,logrotate一般是隨linux按安裝的。它會執行這個命令-“/etc/sbin/logrotate /etc/logrotate.conf”(註意空格)
- /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本
- 這個會觸發上一步你寫的/etc/logrotate.d/tomcate文件
手動執行logrotate
執行以下語句來手動運行cron任務
1 /usr/sbin/logrotate /etc/logrotate.conf
logrotate的更多操作
1 man logrotate
日誌定時切割,以及定時刪除(2種方法)