- find命令脚本+计划任务清理
脚本地址
[yingjian@iZwz96wz957owmvqecj6osZ zsdev]$ cat clean_tomcat_log.sh
#!/usr/bin/bash
#Tate:2022.4.25
#Author:Yingjian
#function: 定时清理tomcat manager、localhost_access_log、localhost、host-manager
#same_day=`date +%F`
#echo $same_day
tomcat_log_dir=/opt/zunshang2_dev/logs
find $tomcat_log_dir -type f -mtime +7 -name "*.log" -exec rm -rf {} ;
find $tomcat_log_dir -type f -mtime +7 -name "*.txt" -exec rm -rf {} ;
计划任务
5 1 * * * /usr/bin/bash /data/scripts/zspro/clean_tomcat_log.sh 5 1 * * * /usr/bin/bash /data/scripts/zsdev/clean_tomcat_log.sh
- logrotate 日志轮转
cd /etc/logrotate.d/
[yingjian@iZwz96wz957owmvqecj6osZ logrotate.d]$ cat zs_dev_catalina
/opt/zunshang2_dev/logs/catalina.out {
daily
minsize 10M
missingok
notifempty
dateext
rotate 7
compress
delaycompress
sharedscripts
create 644 www www
postrotate
if [ -f /var/run/zs_dev.pid ]; then
kill -USR1 `cat /var/run/zs_dev.pid`
fi
endscript
}
定义tomcat的pid文件
[root@iZwz96wz957owmvqecj6osZ bin]# vim /opt/zunshang2_dev/bin/catalina.sh
由于tomcat以普通用户启动手动创建并授权pid文件
sudo touch /var/run/zs_dev.pid sudo setfacl -m u:www:rwx /var/run sudo chown www.www /var/run/zs_dev.pid
kill -USER1 含义:USR1亦通常被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将导致以下步骤的发生:停止接受新的连接,等待当前连接停止,重新载入配置文件,重新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改
在没有执行kill -USR1 cat ${pid_path}之前,即便已经对文件执行了mv命令而改变了文件名称,tomcat还是会向新命名的文件" xxx.out_ 20220419"照常写入日志数据的。原因在于:linux系统中,内核是根据文件描述符来找文件的。
手动测试
logrotate -vf /etc/logrotate.d/zs_dev_catalina
设置定时计划任务
00 00 * * * /usr/bin/bash -vf /etc/logrotate.d/zs_dev_catalina
- 总结
根据个人需求配置合适的定时清理日志方式。
本文参考:https://www.cnblogs.com/along21/p/9198427.html
参数详解参考:https://blog.csdn.net/carefree2005/article/details/113523134
本文参考:https://www.cnblogs.com/wzihan/p/13201783.html



