CentOS系统下Tomcat日志管理的最佳实践:自动清理catalina.out
- 清理脚本脚本
- [在 CentOS 系统上设置和使用这个脚本的步骤](#在 CentOS 系统上设置和使用这个脚本的步骤)
清理脚本脚本
bash
#!/bin/bash
# 设置变量
LOG_FILE="/opt/tomcat/logs/catalina.out"
MAX_SIZE=$((10 * 1024 * 1024 * 1024)) # 10GB in bytes
# 检查日志文件大小
file_size=$(du -b "$LOG_FILE" | cut -f1)
if [ $file_size -gt $MAX_SIZE ]; then
echo "Log file size ($file_size bytes) exceeds 10GB. Cleaning..."
# 备份原始日志文件,如果不需要备份,请使用#注释以下代码
cp "$LOG_FILE" "${LOG_FILE}.bak"
# 清空原始日志文件
echo "" > "$LOG_FILE"
echo "Log file has been cleaned and backed up to ${LOG_FILE}.bak"
else
echo "Log file size ($file_size bytes) is within limits. No action needed."
fi
在 CentOS 系统上设置和使用这个脚本的步骤
-
创建脚本文件:
sudo nano /opt/tomcat/log_cleaner.sh
然后将上面的脚本内容粘贴到这个文件中。
-
保存文件并退出编辑器(在 nano 中,按 Ctrl+X,然后 Y,再按 Enter)。
-
给脚本添加执行权限:
sudo chmod +x /opt/tomcat/log_cleaner.sh
-
测试脚本是否正常工作:
sudo /opt/tomcat/log_cleaner.sh
-
设置 cron 任务来定期运行脚本。打开 crontab 编辑器:
sudo crontab -e
-
添加以下行来每天凌晨 2 点运行脚本:
0 2 * * * /opt/tomcat/log_cleaner.sh >> /opt/tomcat/log_cleaner.log 2>&1
-
保存并退出 crontab 编辑器。
这个设置将每天凌晨 2 点检查 catalina.out 文件的大小,如果超过 10GB,就会清理它并创建一个备份。
几点注意事项:
- 确保运行 Tomcat 的用户对 /opt/tomcat/logs/ 目录有读写权限。
- 定期检查 /opt/tomcat/log_cleaner.log 文件,查看脚本的运行情况。
- 考虑定期清理或压缩旧的备份文件,以防它们占用过多磁盘空间。