方案一
使用cronolog分割tomcat的catalina.out文件燕少,并且crontab進(jìn)行定時(shí)刪除日志胀莹。
日志按照時(shí)間分隔
我們采用日期形式切割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
問(wèn)題:
? ? ? ? 訪問(wèn)多, 打印日志多等等原因, 導(dǎo)致服務(wù)器磁盤空間被占滿, 雖然不會(huì)影響整體的使用, 但可能會(huì)有部分功能不能正常使用. 此時(shí)就需要去清理日志文件. 來(lái)釋放磁盤空間.
解決:
1.可以手動(dòng)清理日志文件. ( 壞處: 麻煩, 浪費(fèi)時(shí)間 )
echo ’ ’ > 文件名稱? ? ? ? //寫入空( 也就是清空 )
[root@localhost /]# echo '' > /opt/apache-tomcat9-xinhua8089/logs/catalina.out
2.定時(shí)去清理日志文件. ( 好處: 方便, 無(wú)需人為操作 )
2.1 編寫腳本 并 寫入腳本內(nèi)容! ( 位置/名稱 隨意 )
[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 給該腳本賦權(quán). ( r-4(用戶 - 可讀) , w-2(組 - 可寫) , x-1(其他用戶 - 可執(zhí)行) )
[root@localhost home]# chmod 755 cleanCatalina.sh
2.3 編輯定時(shí)任務(wù). ( 看自己的需求 )
[root@localhost cache]# crontab -e
#每周六凌晨3點(diǎn)執(zhí)行此腳本. ( 具體看每天日志的存儲(chǔ)量. )
0 3 * * 6? /home/cleanCatalina.sh
2.4 重啟定時(shí)任務(wù) ( 不重啟不生效. . . )? ? ? ? ? ? ? ? ? ? ? ★★★謹(jǐn)記★★★
[root@localhost cache]# service crond restart
2.5 查看定時(shí)任務(wù)
[root@localhost cache]# crontab -l