温馨提示×

centos中tomcat日志清理方法

小樊
50
2025-08-06 13:23:36
栏目: 智能运维

CentOS中Tomcat日志清理方法

1. 手动清理

  • 删除旧日志文件:通过find命令查找并删除指定天数前的日志(如30天前),需指定Tomcat日志目录(默认/var/log/tomcat/或安装目录下的logs)。
    find /var/log/tomcat/ -mtime +30 -name "*.log" -exec rm -rf {} \;  
    find /var/log/tomcat/ -mtime +30 -name "catalina.*.out" -exec rm -rf {} \;  
    
  • 清空日志文件:直接清空catalina.out等大日志文件,避免删除后无法追溯。
    echo "" > /var/log/tomcat/catalina.out  
    

2. 定时任务自动清理

  • Shell脚本+crontab:编写脚本定期清理日志,通过crontab -e设置定时任务(如每天凌晨执行)。
    • 示例脚本clear_tomcat_logs.sh
      #!/bin/bash  
      LOG_DIR="/var/log/tomcat"  
      find "$LOG_DIR" -mtime +15 -name "*.log" -exec rm -rf {} \;  
      find "$LOG_DIR" -mtime +15 -name "catalina.*.out" -exec rm -rf {} \;  
      
    • 添加定时任务:
      0 0 * * * /path/to/clear_tomcat_logs.sh  
      

3. 使用logrotate工具(推荐)

  • 自动轮转压缩:通过logrotate配置实现日志按天切割、压缩并保留指定天数(如7天),无需手动删除。
    • 编辑配置文件/etc/logrotate.d/tomcat
      /var/log/tomcat/catalina.out {  
        daily  
        rotate 7  
        compress  
        missingok  
        notifempty  
        copytruncate  
      }  
      
    • 测试配置:logrotate -d /etc/logrotate.d/tomcat,确认无误后重启服务。

4. 限制日志文件大小

  • 修改catalina.sh:在Tomcat启动脚本中添加日志大小限制逻辑,超过指定大小(如10GB)时清空或备份。
    if [ -f /var/log/tomcat/catalina.out ]; then  
      LOG_SIZE=$(du -b /var/log/tomcat/catalina.out | cut -f1)  
      if [ $LOG_SIZE -gt 10737418240 ]; then  
        echo "" > /var/log/tomcat/catalina.out  
      fi  
    fi  
    

注意事项

  • 确保脚本和定时任务有足够的权限(使用sudo或指定用户)。
  • 定期检查日志清理情况,避免误删重要日志。
  • 若使用systemd管理Tomcat,需同时清理journalctl中的日志(参考journalctl --vacuum-size=100M)。

参考来源

0