首页主机资讯怎样清理Ubuntu Tomcat旧日志

怎样清理Ubuntu Tomcat旧日志

时间2025-10-13 23:48:03发布访客分类主机资讯浏览522
导读:1. 定位Tomcat日志文件路径 Tomcat的日志文件默认存储在{CATALINA_HOME}/logs目录下({CATALINA_HOME}为Tomcat安装路径,可通过echo $CATALINA_HOME命令查看)。常见日志文件包...

1. 定位Tomcat日志文件路径
Tomcat的日志文件默认存储在{ CATALINA_HOME} /logs目录下({ CATALINA_HOME} 为Tomcat安装路径,可通过echo $CATALINA_HOME命令查看)。常见日志文件包括catalina.out(主日志)、localhost_access_log.*.txt(访问日志)、manager.log(Manager应用日志)等。

2. 手动清理旧日志(临时方案)
若需立即清理,可通过以下步骤操作:

  • 停止Tomcat服务(避免文件占用导致删除失败):
    sudo systemctl stop tomcat
    
  • 进入日志目录
    cd $CATALINA_HOME/logs
    
  • 删除指定天数前的日志(例如删除7天前的.log文件):
    find . -type f -name "*.log" -mtime +7 -exec rm -rf {
    }
         \;
        
    
  • 清空catalina.out文件(该文件持续增长,需定期清空):
    >
     catalina.out
    
  • 重启Tomcat服务
    sudo systemctl start tomcat
    

3. 使用Logrotate自动轮转与清理(推荐方案)
Logrotate是Linux系统自带的日志管理工具,可实现日志的自动切割、压缩、删除,避免手动操作。

  • 配置Logrotate
    编辑或创建/etc/logrotate.d/tomcat文件,添加以下内容(根据实际情况修改/path/to/tomcat/logs为真实路径):
    /path/to/tomcat/logs/catalina.out {
    
        daily                # 每天轮转一次
        rotate 7             # 保留7份日志(即删除7天前的)
        compress             # 压缩旧日志(节省空间)
        missingok            # 若日志文件不存在,不报错
        notifempty           # 若日志为空,不轮转
        copytruncate         # 复制原日志后清空,无需重启Tomcat
    }
    
    
  • 测试配置有效性
    运行以下命令模拟日志轮转(-d表示干运行,不实际执行):
    sudo logrotate -d /etc/logrotate.d/tomcat
    
    若无错误提示,说明配置正确。
  • 强制立即轮转(可选):
    sudo logrotate -f /etc/logrotate.d/tomcat
    
  • 验证自动运行
    Logrotate默认通过系统cron任务(/etc/cron.daily/logrotate)每日自动执行,无需额外配置。

4. 编写Shell脚本自动化清理(灵活方案)
若需更定制化的清理逻辑(如同时清理访问日志、Manager日志),可编写脚本并通过cron定时执行:

  • 创建清理脚本(例如/opt/tomcat/scripts/clean_tomcat_logs.sh):
    #!/bin/bash
    LOG_PATH="$CATALINA_HOME/logs"
    # 删除7天前的所有.log文件(包括access log、manager log等)
    find "$LOG_PATH" -type f -name "*.log" -mtime +7 -exec rm -rf {
    }
         \;
        
    # 清空catalina.out
    >
         "$LOG_PATH/catalina.out"
    echo "$(date): Tomcat logs cleaned up." >
        >
         "$LOG_PATH/cleanup.log"
    
  • 赋予脚本执行权限
    chmod +x /opt/tomcat/scripts/clean_tomcat_logs.sh
    
  • 设置cron定时任务(例如每天凌晨1点执行):
    crontab -e
    
    添加以下内容:
    0 1 * * * /opt/tomcat/scripts/clean_tomcat_logs.sh
    

注意事项

  • 备份重要日志:清理前若需保留关键日志,可将日志文件复制到其他存储路径(如/backup)。
  • 调整保留天数:根据日志增长速度和存储空间,合理设置rotate参数(如rotate 30保留30天)。
  • 监控日志大小:若日志增长过快,可结合du -sh $CATALINA_HOME/logs命令定期检查日志目录大小,及时调整清理策略。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 怎样清理Ubuntu Tomcat旧日志
本文地址: https://pptw.com/jishu/725281.html
Ubuntu Tomcat日志中如何监控线程状态 cpustat中的iowait是什么意思

游客 回复需填写必要信息