下面给你几种在 CentOS 上备份 Java 日志的常见做法,从简单到自动化,你可以按实际需求选择。
Java 日志通常位于以下目录之一(取决于应用):
/usr/local/tomcat/logs/
/var/log/tomcat/
/var/log/your-app/
./logs/
/opt/app/logs/
先确认日志路径:
ls -lh /path/to/java/logs
tar -czvf java-logs-$(date +%F).tar.gz /path/to/java/logs
示例:
tar -czvf java-logs-2026-01-21.tar.gz /opt/app/logs
cp -r /opt/app/logs /backup/java-logs-$(date +%F)
vim /etc/logrotate.d/java-app
示例配置:
/opt/app/logs/*.log {
daily
rotate 30
missingok
notifempty
compress
dateext
copytruncate
}
说明:
daily:每天备份rotate 30:保留 30 份compress:压缩dateext:带日期copytruncate:不重启 Java 应用logrotate -vf /etc/logrotate.d/java-app
vim /usr/local/bin/backup_java_logs.sh
内容:
#!/bin/bash
SRC=/opt/app/logs
DEST=/backup/java-logs
DATE=$(date +%F)
mkdir -p $DEST
tar -czvf $DEST/java-logs-$DATE.tar.gz $SRC
赋予执行权限:
chmod +x /usr/local/bin/backup_java_logs.sh
crontab -e
每天凌晨 2 点备份:
0 2 * * * /usr/local/bin/backup_java_logs.sh >> /var/log/java-backup.log 2>&1
find /backup/java-logs -name "*.tar.gz" -mtime +30 -delete
加到 cron:
0 3 * * * find /backup/java-logs -name "*.tar.gz" -mtime +30 -delete
rsync -avz /backup/java-logs/ user@backup-server:/data/backup/java-logs/
✅ logrotate + cron + 远程备份
如果你愿意,可以告诉我:
我可以帮你直接写一份可用的 logrotate 或备份脚本。