ubuntu

Ubuntu Tomcat日志清理技巧有哪些

小樊
45
2025-06-12 19:00:43
栏目: 智能运维

在Ubuntu系统中,清理Tomcat日志可以通过以下几种方法进行:

  1. 手动清理

    • 查找日志文件:使用命令 find / -type f -name "catalina.out" 来查找Tomcat的日志文件。
    • 清空日志文件:可以使用以下命令清空日志文件内容,而不删除文件本身:
      echo -n "" > /path/to/tomcat/logs/catalina.out
      
    • 禁止日志文件输出:编辑Tomcat的 catalina.sh 文件,注释掉日志输出的路径:
      if [ -z "$CATALINA_OUT" ]; then CATALINA_OUT="/dev/null" fi
      
  2. 使用Logrotate进行日志轮转

    • 安装Logrotate(如果尚未安装):
      sudo apt-get install logrotate
      
    • 创建或编辑Logrotate配置文件,例如 /etc/logrotate.d/tomcat
      /usr/local/tomcat/logs/catalina.out {
          daily
          rotate 7
          compress
          missingok
          notifempty
          copytruncate
      }
      
    • 测试配置并设置定时任务:
      sudo logrotate -f /etc/logrotate.d/tomcat
      sudo crontab -e
      
      在crontab文件中添加以下行以每天执行日志轮转:
      0 0 * * * root /usr/sbin/logrotate /etc/logrotate.d/tomcat
      
  3. 使用脚本自动化清理

    • 创建一个Shell脚本,例如 clean_tomcat_logs.sh
      #!/bin/bash
      LOG_DIR="/path/to/tomcat/logs"
      find "$LOG_DIR" -mtime 30 -name "*.log" -exec rm -rf {} \;
      find "$LOG_DIR" -mtime 30 -name "catalina.*.out" -exec rm -rf {} \;
      
    • 给脚本添加执行权限并配置定时任务:
      chmod +x /path/to/tomcat/logs/clean_tomcat_logs.sh
      crontab -e
      
      在crontab文件中添加以下内容,每天凌晨执行脚本:
      0 0 * * * /path/to/tomcat/logs/clean_tomcat_logs.sh
      
  4. 使用Tomcat本身的日志管理功能

    • 编辑 conf/logging.properties 文件,设置日志文件的最大保留天数:
      handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler
      1catalina.org.apache.juli.AsyncFileHandler.level = FINE
      1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
      1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
      1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7
      

通过以上方法,可以有效地管理Tomcat日志,避免磁盘空间被过多占用。

0
看了该问题的人还看了