Java通常安装在/usr/lib/jvm(OpenJDK默认路径)或/opt/java(Oracle JDK自定义路径)目录下。使用tar命令打包备份:
# 查找Java安装路径
ls /usr/lib/jvm # 或 ls /opt/java
# 备份Java目录(以/usr/lib/jvm/java-11-openjdk为例)
sudo tar -czvf /backup/java_installation_backup.tar.gz /usr/lib/jvm/java-11-openjdk
-c:创建新的归档文件;-z:用gzip压缩;-v:显示详细过程;-f:指定备份文件名。Java环境变量(JAVA_HOME、PATH)通常存放在以下文件中:
/etc/profile.d/java.sh(自定义脚本)或/etc/profile;~/.bashrc(当前用户)或~/.bash_profile。备份命令:
# 备份系统级别环境变量
sudo cp /etc/profile.d/java.sh /backup/java_env_system_backup.sh
# 备份用户级别环境变量
cp ~/.bashrc /backup/java_env_user_backup.bashrc
若存在自定义Java应用(如Spring Boot jar包)或第三方库(lib目录),备份其所在目录:
# 备份应用目录(以/opt/my-java-app为例)
tar -czvf /backup/java_apps_backup.tar.gz /opt/my-java-app
# 备份库文件(以/usr/local/lib/java为例)
tar -czvf /backup/java_libs_backup.tar.gz /usr/local/lib/java
Java应用日志通常位于/var/log/目录(如Tomcat的catalina.out)或应用自定义目录(如/opt/my-java-app/logs)。
# 备份/var/log/java目录下的所有.log文件
sudo tar -czvf /backup/java_logs_backup.tar.gz /var/log/java/*.log
logrotate工具实现日志轮转(保留7天,压缩旧日志):# 安装logrotate(若未安装)
sudo yum install -y logrotate
# 创建Java日志配置文件
sudo vi /etc/logrotate.d/java
输入以下内容(替换/path/to/your/java/logs为实际日志路径):/path/to/your/java/logs/*.log {
daily # 每天轮转
rotate 7 # 保留7个备份
compress # 压缩旧日志
missingok # 忽略缺失文件
notifempty # 空日志不轮转
create 0644 root root # 新日志权限
}
加载配置:sudo systemctl reload logrotate
记录当前Java版本,便于恢复时验证:
java -version > /backup/java_version_backup.txt
# 解压备份文件到原路径
sudo tar -xzvf /backup/java_installation_backup.tar.gz -C /
# 恢复系统级别环境变量
sudo cp /backup/java_env_system_backup.sh /etc/profile.d/java.sh
source /etc/profile.d/java.sh
# 恢复用户级别环境变量
cp /backup/java_env_user_backup.bashrc ~/.bashrc
source ~/.bashrc
# 恢复应用目录
tar -xzvf /backup/java_apps_backup.tar.gz -C /
# 恢复库文件
tar -xzvf /backup/java_libs_backup.tar.gz -C /
# 解压日志备份
sudo tar -xzvf /backup/java_logs_backup.tar.gz -C /var/log/java/
java -version
输出应与java_version_backup.txt一致。sudo提升权限,避免文件访问失败。gpg工具),防止敏感信息泄露。crontab定时执行(如每天凌晨2点备份):crontab -e
添加以下内容(以每日备份为例):0 2 * * * /path/to/backup_java_env.sh