在 Ubuntu 上备份 Tomcat 日志,常见做法有几种,从手动备份到自动定时备份都可以。下面按常用场景给你说明。
一般位于:
/opt/tomcat/logs/
# 或
/var/log/tomcat*/
常见日志文件:
catalina.outlocalhost.*.loghost-manager.*.logmanager.*.logaccess_log_*.txt先确认路径:
ls /opt/tomcat/logs
mkdir -p /backup/tomcat/$(date +%Y%m%d)
cp -r /opt/tomcat/logs/* /backup/tomcat/$(date +%Y%m%d)/
tar -czf /backup/tomcat/logs-$(date +%Y%m%d).tar.gz /opt/tomcat/logs
sudo nano /usr/local/bin/backup_tomcat_logs.sh
内容示例:
#!/bin/bash
LOG_DIR="/opt/tomcat/logs"
BACKUP_DIR="/backup/tomcat"
DATE=$(date +%Y%m%d)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/tomcat-logs-$DATE.tar.gz $LOG_DIR
# 保留 7 天
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
赋予执行权限:
sudo chmod +x /usr/local/bin/backup_tomcat_logs.sh
sudo crontab -e
每天凌晨 2 点执行:
0 2 * * * /usr/local/bin/backup_tomcat_logs.sh >> /var/log/tomcat-backup.log 2>&1
避免 catalina.out 无限增大:
cp /opt/tomcat/logs/catalina.out /backup/tomcat/catalina.out.$(date +%Y%m%d)
> /opt/tomcat/logs/catalina.out
⚠️ 不要直接删除 catalina.out(Tomcat 正在写入)
Tomcat 日志非常适合用 logrotate 管理。
sudo nano /etc/logrotate.d/tomcat
示例:
/opt/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
sudo logrotate -d /etc/logrotate.d/tomcat
✅ copytruncate 可避免重启 Tomcat
rsync -avz /backup/tomcat/ user@backup-server:/data/tomcat-logs/
| 场景 | 推荐方式 |
|---|---|
| 临时备份 | tar + cp |
| 自动备份 | cron + shell |
| 日志轮转 | ✅ logrotate |
| 生产环境 | logrotate + 远程备份 |
如果你愿意,可以告诉我:
catalina.out我可以帮你定制一套最合适你环境的备份方案。