方案一
使用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