在 CentOS 上备份 Java 日志(如 Tomcat、Spring Boot、微服务日志等),通常做法是 按时间打包 + 定时清理 + 可选压缩。下面给你一套 常用、可落地的方案。
常见路径(按实际情况调整):
/var/log/java/
/opt/app/logs/
/home/app/logs/
/usr/local/tomcat/logs/
日志文件常见名:
app.log
catalina.out
spring.log
error.log
cp /opt/app/logs/app.log /opt/backup/app-$(date +%F).log
tar -czf /opt/backup/app-logs-$(date +%F).tar.gz /opt/app/logs/
mkdir -p /opt/backup
vi /opt/backup_java_log.sh
脚本内容(示例):
#!/bin/bash
LOG_DIR=/opt/app/logs
BACKUP_DIR=/opt/backup
DATE=$(date +%F)
KEEP_DAYS=7
# 创建备份目录
mkdir -p $BACKUP_DIR
# 打包日志
tar -czf $BACKUP_DIR/java-logs-$DATE.tar.gz $LOG_DIR
# 删除 7 天前的备份
find $BACKUP_DIR -name "java-logs-*.tar.gz" -mtime +$KEEP_DAYS -delete
✅ 保留最近 7 天 备份
chmod +x /opt/backup_java_log.sh
crontab -e
每天凌晨 2 点执行:
0 2 * * * /opt/backup_java_log.sh >> /var/log/backup-java.log 2>&1
vi /etc/logrotate.d/java-app
示例配置:
/opt/app/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
含义:
daily:每天轮转rotate 7:保留 7 份compress:压缩copytruncate:不重启 Java 进程✅ 适合 Tomcat / Spring Boot
docker cp 容器名:/app/logs /opt/backup/
kubectl cp pod名:/app/logs /opt/backup/
或挂载 PV 再备份。
✅ 最佳方案
logrotate 管理日志轮转
cron + tar 自动备份
只保留 7~30 天
df -hsystemctl status crondtail -f /var/log/backup-java.log如果你愿意,可以告诉我:
我可以帮你定制一份可直接用的备份方案。