CentOS Java备份与恢复实操指南
一 备份范围与准备
java -versionupdate-alternatives --list javals /usr/lib/jvm 或 ls /usr/java二 备份步骤
sudo tar -czvf /backup/java/jdk_$(date +%F).tar.gz /usr/lib/jvm/java-11-openjdksudo cp /etc/profile.d/java.sh /backup/java/java.sh.bak/etc/profile,可整体备份:sudo cp /etc/profile /backup/java/profile.baksudo tar -czvf /backup/java/tomcat_$(date +%F).tar.gz /opt/tomcatsudo tar -czvf /backup/java/tomcat_conf_$(date +%F).tar.gz /opt/tomcat/confsudo tar -czvf /backup/java/app_data_$(date +%F).tar.gz /opt/app/datasudo tar -czvf /backup/java/app_logs_$(date +%F).tar.gz /opt/app/logs#!/bin/bash
BACKUP_DIR="/backup/java"
DATE=$(date +%F)
mkdir -p "$BACKUP_DIR"
# JDK
JAVA_DIR=$(readlink -f /usr/bin/java | sed 's|/bin/java$||')
[ -d "$JAVA_DIR" ] && sudo tar -czvf "$BACKUP_DIR/jdk_$DATE.tar.gz" -C "$JAVA_DIR" .
# Env
[ -f /etc/profile.d/java.sh ] && sudo cp /etc/profile.d/java.sh "$BACKUP_DIR/java.sh.bak_$DATE"
# Tomcat
[ -d /opt/tomcat ] && sudo tar -czvf "$BACKUP_DIR/tomcat_$DATE.tar.gz" -C /opt/tomcat .
# App
[ -d /opt/app/data ] && sudo tar -czvf "$BACKUP_DIR/app_data_$DATE.tar.gz" -C /opt/app/data .
[ -d /opt/app/logs ] && sudo tar -czvf "$BACKUP_DIR/app_logs_$DATE.tar.gz" -C /opt/app/logs .
echo "Backup completed at $DATE"
chmod +x backup_java.shecho "0 1 * * * /path/backup_java.sh" | sudo tee /etc/cron.d/java_backupsudo tee /etc/logrotate.d/java <<'EOF'/opt/app/logs/*.log {
daily
rotate 30
compress
missingok
notifempty
create 0644 app app
}
EOF`
logrotate -d /etc/logrotate.d/javasudo systemctl reload logrotate。三 恢复步骤
sudo tar -xzvf /backup/java/jdk_YYYY-MM-DD.tar.gz -C /usr/lib/jvmsudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 100
sudo alternatives --config java # 交互选择
sudo cp /backup/java/java.sh.bak_YYYY-MM-DD /etc/profile.d/java.sh && source /etc/profilesudo cp /backup/java/profile.bak_YYYY-MM-DD /etc/profile && source /etc/profilesudo tar -xzvf /backup/java/tomcat_YYYY-MM-DD.tar.gz -C /opt/tomcatsudo tar -xzvf /backup/java/app_data_YYYY-MM-DD.tar.gz -C /opt/app/datasudo tar -xzvf /backup/java/app_logs_YYYY-MM-DD.tar.gz -C /opt/app/logs/opt/tomcat/bin/startup.sh 或 java -jar /opt/app/app.jar &)java -version、update-alternatives --config java、ps -ef | grep java、tail -f /opt/app/logs/*.log。四 验证与回滚
java -version、which java、readlink -f $(which java) 应指向恢复后的 JAVA_HOME/bin/javaecho $JAVA_HOME、echo $PATH 应包含恢复后的路径sha256sum /usr/lib/jvm/java-11-openjdk /backup/java/jdk_YYYY-MM-DD.tar.gz五 注意事项与最佳实践
chown -R app:app /opt/app 等确保应用用户对数据与日志有正确权限。