CentOS Java如何进行备份恢复
导读:CentOS Java备份与恢复实操指南 一 备份范围与准备 明确备份对象: JDK/JRE 安装目录(常见路径:/usr/lib/jvm 或 /usr/java) 环境变量配置(如:/etc/profile、/etc/profile....
CentOS Java备份与恢复实操指南
一 备份范围与准备
- 明确备份对象:
- JDK/JRE 安装目录(常见路径:/usr/lib/jvm 或 /usr/java)
- 环境变量配置(如:/etc/profile、/etc/profile.d/java.sh)
- Java 应用与中间件配置(如 Tomcat:/opt/tomcat 或 /usr/local/tomcat,重点在 conf/ 等)
- 应用数据与日志(业务数据目录、日志目录)
- 先定位 Java 安装路径与当前版本:
- 查看版本:
java -version - 列出可用 Java:
update-alternatives --list java - 查找安装目录:
ls /usr/lib/jvm或ls /usr/java
- 查看版本:
- 建议准备一个备份目录(示例:/backup/java),并确保有足够磁盘空间与sudo 权限。
二 备份步骤
- 备份 JDK/JRE 目录(按实际路径调整):
- 示例:
sudo tar -czvf /backup/java/jdk_$(date +%F).tar.gz /usr/lib/jvm/java-11-openjdk
- 示例:
- 备份环境变量配置:
- 推荐集中到独立文件:
sudo cp /etc/profile.d/java.sh /backup/java/java.sh.bak - 如使用
/etc/profile,可整体备份:sudo cp /etc/profile /backup/java/profile.bak
- 推荐集中到独立文件:
- 备份中间件配置(以 Tomcat 为例):
- 全量:
sudo tar -czvf /backup/java/tomcat_$(date +%F).tar.gz /opt/tomcat - 仅配置:
sudo tar -czvf /backup/java/tomcat_conf_$(date +%F).tar.gz /opt/tomcat/conf
- 全量:
- 备份应用数据与日志(示例):
- 数据:
sudo tar -czvf /backup/java/app_data_$(date +%F).tar.gz /opt/app/data - 日志:
sudo tar -czvf /backup/java/app_logs_$(date +%F).tar.gz /opt/app/logs
- 数据:
- 自动化脚本示例(backup_java.sh):
- 内容:
#!/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" - 赋权与定时(每天 1 点):
chmod +x backup_java.shecho "0 1 * * * /path/backup_java.sh" | sudo tee /etc/cron.d/java_backup
- 内容:
- 日志轮转建议(logrotate,长期保留与压缩):
- 新建:
sudo 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/java - 生效:
sudo systemctl reload logrotate。
- 新建:
三 恢复步骤
- 恢复 JDK/JRE:
- 解压:
sudo tar -xzvf /backup/java/jdk_YYYY-MM-DD.tar.gz -C /usr/lib/jvm - 设置默认版本(如使用 alternatives):
sudo 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/profile - 方式二:
sudo cp /backup/java/profile.bak_YYYY-MM-DD /etc/profile & & source /etc/profile
- 方式一(推荐):
- 恢复中间件与应用:
- Tomcat:
sudo tar -xzvf /backup/java/tomcat_YYYY-MM-DD.tar.gz -C /opt/tomcat - 应用数据:
sudo tar -xzvf /backup/java/app_data_YYYY-MM-DD.tar.gz -C /opt/app/data - 应用日志:
sudo tar -xzvf /backup/java/app_logs_YYYY-MM-DD.tar.gz -C /opt/app/logs
- Tomcat:
- 启动与验证:
- 启动应用或中间件(如:
/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/java
- 配置生效:
echo $JAVA_HOME、echo $PATH应包含恢复后的路径
- 完整性校验(可选):
- 对关键目录做哈希对比:
sha256sum /usr/lib/jvm/java-11-openjdk /backup/java/jdk_YYYY-MM-DD.tar.gz
- 对关键目录做哈希对比:
- 快速回滚:
- 重复“恢复步骤”,指向上一个备份时间点的压缩包与配置文件即可。
五 注意事项与最佳实践
- 变更前必备份:在执行 JDK 升级/切换版本 前先备份 JDK 与环境变量,便于回滚。
- 使用 alternatives 管理多版本:便于在 /usr/bin/java 层面切换默认 Java,避免 PATH 混乱。
- 日志策略:生产环境建议用 logrotate 做按日轮转与压缩,长期保留关键业务日志。
- 权限与属主:恢复后用
chown -R app:app /opt/app等确保应用用户对数据与日志有正确权限。 - 定期演练:定期在测试环境演练恢复流程,验证备份可用性与恢复时长(RTO/RPO 目标)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Java如何进行备份恢复
本文地址: https://pptw.com/jishu/765219.html
