一鍵配置tomcat定期日志清理功能


概述

日志文件包含了關於系統中發生的事件的有用信息,在排障過程中或者系統性能分析時經常被用到。對於忙碌的服務器,日志文件大小會增長極快,服務器會很快消耗磁盤空間,這成了個問題。除此之外,處理一個單個的龐大日志文件也常常是件十分棘手的事。

logrotate是個十分有用的工具,它可以自動對日志進行截斷(或輪循)、壓縮以及刪除舊的日志文件。例如,你可以設置logrotate,讓/var/log/foo日志文件每30天輪循,並刪除超過6個月的日志。配置完后,logrotate的運作完全自動化,不必進行任何進一步的人為干預。

因為服務器比較多,所以簡單寫了個shell腳本來直接配置logrotate。


logrotate配置文件說明

實用shell腳本--一鍵配置tomcat定期日志清理功能

 


Logrotate的記錄日志

logrotate自身的日志通常存放於/var/lib/logrotate/status目錄。如果處於排障目的,我們想要logrotate記錄到任何指定的文件,我們可以指定像下面這樣從命令行指定。

[root@clsn6 ~]# logrotate -vf -s /var/log/logrotate-status /etc/logrotate.d/log-file

tomcat設置自動切割

對於catalina,localhost,manager,host-manager這四類日志,使用tomcat 8.5.24版本后新添加的maxDays屬性進行管理。打開日志配置,將日志配置為3天后自動刪除

#vim $tomcat/conf/logging.properties

1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3
3manager.org.apache.juli.AsyncFileHandler.maxDays = 3
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3

對於catalina.out標准輸入輸出日志,使用linux自帶的logrotate進行管理。將日志配置為3天后自動刪除

#vim /etc/logrotate.d/tomcat

$tomcat/logs/catalina.out {
daily #logrotate周期
rotate 3 #保存多久
missingok
notifempty #如果是空文件的話,不轉儲
compress
}

shell腳本配置tomcat自動切割

1、腳本內容

#!/bin/bash
#copyright by hwb --2019/7/12
tomcat=/home/tomcat8052
#配置catalina,localhost,manager,host-manager日志保留3天
cat << EOF >> $tomcat/conf/logging.properties
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 3
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 3
3manager.org.apache.juli.AsyncFileHandler.maxDays = 3
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 3
EOF
#logrotate配置3天
cat << EOF >> /etc/logrotate.d/tomcat
$tomcat/logs/catalina.out {
copytruncate
daily
rotate 3
missingok
}
EOF
echo "=======配置catalina,localhost,manager,host-manager日志保留3天========="
cat $tomcat/conf/logging.properties |grep maxDays
echo "=================logrotate配置catalina.out保留3天====================="
cat /etc/logrotate.d/tomcat
實用shell腳本--一鍵配置tomcat定期日志清理功能

 

2、執行腳本

執行腳本會去配置logrotate

實用shell腳本--一鍵配置tomcat定期日志清理功能

 

3、測試lorotate功能

# logrotate -d /etc/logrotate.conf
實用shell腳本--一鍵配置tomcat定期日志清理功能

 

測試成功。


免責聲明!

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



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