方案一
使用cronolog分割tomcat的catalina.out文件,并且crontab進行定時刪除日志。
日志按照時間分隔
我們采用日期形式切割catalina.out 日志,因此采用cronlog 軟件切割:
安裝 cronlog
yum install -y cronolog httpd
1
或者
sudo apt-get install gcc
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
tar -xzvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make
sudo suroot
make install
查看cronolog是否安裝: whereis cronolog
問題:
? ? ? ? 訪問多, 打印日志多等等原因, 導致服務器磁盤空間被占滿, 雖然不會影響整體的使用, 但可能會有部分功能不能正常使用. 此時就需要去清理日志文件. 來釋放磁盤空間.
解決:
1.可以手動清理日志文件. ( 壞處: 麻煩, 浪費時間 )
echo ’ ’ > 文件名稱? ? ? ? //寫入空( 也就是清空 )
[root@localhost /]# echo '' > /opt/apache-tomcat9-xinhua8089/logs/catalina.out
2.定時去清理日志文件. ( 好處: 方便, 無需人為操作 )
2.1 編寫腳本 并 寫入腳本內容! ( 位置/名稱 隨意 )
[root@localhost home]# vim cleanCatalina.sh
#清空 tomcat/logs/下的catalina.out
echo '' > /opt/apache-tomcat9-xinhua8089/logs/catalina.out
logs_path="/opt/apache-tomcat9-xinhua8089/logs"
find $logs_path -mtime +30 -name "catalina.*.log" -exec rm -rf {} \;
find $logs_path -mtime +30 -name "host-manager.*.log" -exec rm -rf {} \;
find $logs_path -mtime +30 -name "localhost.*.log" -exec rm -rf {} \;
find $logs_path -mtime +30 -name "localhost_access_log.*.txt" -exec rm -rf {} \;
find $logs_path -mtime +30 -name "manager.*.log" -exec rm -rf {} \;
echo '' > $logs_path/catalina.out
2.2 給該腳本賦權. ( r-4(用戶 - 可讀) , w-2(組 - 可寫) , x-1(其他用戶 - 可執行) )
[root@localhost home]# chmod 755 cleanCatalina.sh
2.3 編輯定時任務. ( 看自己的需求 )
[root@localhost cache]# crontab -e
#每周六凌晨3點執行此腳本. ( 具體看每天日志的存儲量. )
0 3 * * 6? /home/cleanCatalina.sh
2.4 重啟定時任務 ( 不重啟不生效. . . )? ? ? ? ? ? ? ? ? ? ? ★★★謹記★★★
[root@localhost cache]# service crond restart
2.5 查看定時任務
[root@localhost cache]# crontab -l