在 CentOS 上备份 Java 日志,通常根据你的日志类型(应用自身日志 / Tomcat 日志 / systemd 日志)和备份方式(手动 / 定时 / 远程)来决定。下面给你一套实用、常见、可直接用的方案。
/opt/app/logs/
/var/log/app/
~/logs/
/opt/tomcat/logs/
/usr/local/tomcat/logs/
journalctl -u your-java-service
tar -czf java-logs-$(date +%F).tar.gz /opt/app/logs
cp java-logs-*.tar.gz /backup/
vim /opt/scripts/backup_java_logs.sh
内容示例:
#!/bin/bash
LOG_DIR=/opt/app/logs
BACKUP_DIR=/backup/java_logs
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/java-logs-$DATE.tar.gz $LOG_DIR
# 保留 7 天
find $BACKUP_DIR -name "*.tar.gz" -mtime +7 -delete
chmod +x /opt/scripts/backup_java_logs.sh
crontab -e
0 2 * * * /opt/scripts/backup_java_logs.sh
如果 Java 使用了 logrotate:
/opt/app/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
}
你可以只备份 .gz 文件:
tar -czf backup.tar.gz /opt/app/logs/*.gz
journalctl -u java-app > java-app-$(date +%F).log
0 3 * * * journalctl -u java-app --since "1 day ago" >> /backup/java-app.log
rsync -avz /opt/app/logs/ backupuser@backup-server:/backup/java_logs/
✅ 不要直接删原日志(先备份)
✅ 使用 logrotate 管理日志大小
✅ 备份文件加日期
✅ 定期清理旧备份
✅ 重要系统做异地备份
如果你愿意,可以告诉我:
我可以帮你定制一套完整备份方案。