Ubuntu Tomcat日志存储位置与备份策略
一 日志默认存储位置
二 如何修改日志目录
三 备份策略与实施步骤
/opt/tomcat/logs/catalina.out {
daily
rotate 30
compress
delaycompress
missingok
notifempty
create 640 tomcat tomcat
sharedscripts
postrotate
systemctl reload tomcat >/dev/null 2>&1 || true
endscript
}
/opt/tomcat/logs/*.log {
daily
rotate 14
compress
missingok
notifempty
create 640 tomcat tomcat
}
sudo logrotate -d /etc/logrotate.conf # 语法与执行计划演练
sudo logrotate -f /etc/logrotate.d/tomcat # 强制执行一次
#!/usr/bin/env bash
set -e
LOG_PATH="/opt/tomcat/logs"
BACKUP_DIR="/opt/backup/tomcat/$(date +%F)"
RETENTION_DAYS=14
mkdir -p "$BACKUP_DIR"
# 轮转 catalina.out
[ -f "$LOG_PATH/catalina.out" ] && \
mv "$LOG_PATH/catalina.out" "$BACKUP_DIR/catalina.out.$(date +%Y%m%d)"
# 打包其余 .log(排除已轮转的 catalina.out)
find "$LOG_PATH" -maxdepth 1 -name "*.log" ! -name "catalina.out" -mtime -1 -exec tar czf "$BACKUP_DIR/tomcat_logs_$(date +%Y%m%d).tar.gz" -C "$LOG_PATH" {} +
# 清理本地旧日志
find "$LOG_PATH" -mtime +$RETENTION_DAYS -name "*.gz" -delete
find "$BACKUP_DIR" -mtime +$RETENTION_DAYS -delete
# 可选:同步到远程
# rsync -avz --delete "$BACKUP_DIR/" user@remote:/backup/tomcat/
chmod +x /opt/backup/backup_tomcat_logs.sh
echo "0 2 * * * /opt/backup/backup_tomcat_logs.sh" | sudo tee /etc/cron.d/backup_tomcat_logs
四 日志切割与保留建议
五 快速排障与验证
echo $CATALINA_BASE
grep -n "AccessLogValve" /opt/tomcat/conf/server.xml
tail -f /opt/tomcat/logs/catalina.out
less /opt/tomcat/logs/localhost_access_log.2025-12-08.txt
grep -i "error\|exception" /opt/tomcat/logs/catalina.*.log
sudo logrotate -d /etc/logrotate.conf
sudo logrotate -f /etc/logrotate.d/tomcat