CentOS Java备份与恢复方案
一 备份范围与策略
二 备份实施步骤
ls /usr/lib/jvm/、ls /usr/java/、readlink -f $(which java)、update-alternatives --display java。tar -czvf java_backup_$(date +%F).tar.gz -C /usr/lib/jvm/ .(按实际路径调整)。tar -czvf app_conf_backup_$(date +%F).tar.gz /opt/app /etc/yourapp /etc/profile.d/java.sh /var/lib/yourapp。mysqldump -u USER -pPASSWORD --single-transaction --routines --triggers --databases yourdb > /backup/db_yourdb_$(date +%F).sql。/var/log/yourapp/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 app app
}
测试:logrotate -d /etc/logrotate.d/java;使配置生效:systemctl reload logrotate。#!/usr/bin/env bash
BACKUP_DIR="/backup/java_logs"
DATE=$(date +%F)
mkdir -p "$BACKUP_DIR"
cp /var/log/yourapp/*.log "$BACKUP_DIR/${DATE}.log"
find "$BACKUP_DIR" -mtime +30 -type f -name "*.log" -delete
rsync -aAX --delete /opt/app /backup/app_full/$(date +%F)/rsync -aAX --delete --link-dest=/backup/app_incr/last/ /opt/app /backup/app_incr/$(date +%F)/ && ln -sfn $(date +%F) /backup/app_incr/lastrestic init --repo /backup/restic_reporestic --repo /backup/restic_repo backup /opt/app /usr/lib/jvm /var/lib/yourapp /etc/yourapp0 2 * * * /usr/bin/restic --repo /backup/restic_repo backup ...。三 恢复实施步骤
tar -xzvf java_backup_2025-08-01.tar.gz -C /usr/lib/jvm/alternatives --config java(按提示选择),或创建软链:ln -sfn /usr/lib/jvm/java-11-openjdk /usr/java/defaulttar -xzvf app_conf_backup_2025-08-01.tar.gz -C /mysql -u USER -pPASSWORD < /backup/db_yourdb_2025-08-01.sqlcp /backup/java_logs/2025-08-01.log /var/log/yourapp/restic --repo /backup/restic_repo restore latest --target /restore/restic --repo /backup/restic_repo restore <snapshot-id> --target /restore/systemctl restart yourappjava -version、ps -ef | grep java、curl -I http://localhost:8080/health。四 自动化与验证
restic 命令。五 常见场景与注意事项
alternatives 切换。--single-transaction(InnoDB)确保一致性,并定期校验备份可恢复性。