首页主机资讯CentOS Java恢复如何实现

CentOS Java恢复如何实现

时间2026-01-19 13:49:03发布访客分类主机资讯浏览1052
导读:CentOS Java恢复操作指南 一 快速恢复路径 确认现状:检查是否误删 JDK/JRE、命令是否可用、环境变量是否异常。 命令:which java、java -version、echo $JAVA_HOME、ls /usr/li...

CentOS Java恢复操作指南

一 快速恢复路径

  • 确认现状:检查是否误删 JDK/JRE、命令是否可用、环境变量是否异常。
    • 命令:which javajava -versionecho $JAVA_HOMEls /usr/lib/jvm/
  • 有备份则优先恢复:将备份包解压回 /usr/lib/jvm/ 或自定义目录,然后恢复环境变量与默认版本。
    • 示例:tar -xzf java_backup_20231001.tar.gz -C /usr/java/
  • 无备份则重装运行环境:安装 OpenJDK(示例为 Java 11),并配置 JAVA_HOME/PATH
    • 命令:sudo yum install -y java-11-openjdk-devel
  • 设置默认版本:使用 alternatives 切换系统默认 java
  • 验证:再次检查 java -versionjavac -versionecho $JAVA_HOME/usr/lib/jvm/ 目录完整性。

二 场景化恢复步骤

  • 场景A 命令报 “java: command not found”
    • 安装运行环境:sudo yum install -y java-11-openjdk-devel
    • 若是 CentOS 8 且官方源不可用:备份并切换到 vault.centos.org 归档源后安装。
      • 备份:sudo cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak/
      • 切换:sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
      • 替换:sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
      • 更新缓存:sudo dnf clean all & & sudo dnf makecache
      • 安装:sudo dnf install -y java-11-openjdk-devel
  • 场景B 误删 JDK 目录或文件
    • 有备份:按时间点解压恢复至 /usr/lib/jvm/(或原安装目录),再恢复环境变量与默认版本。
    • 无备份:重装对应版本的 OpenJDK,并重新设置 JAVA_HOME/PATH
  • 场景C 多版本并存需回退默认版本
    • 使用 alternatives 配置系统默认 java(见下文命令示例)。

三 服务级恢复与保活

  • 定位与停止:获取 PID 并安全停止(必要时再强制)。
    • 命令:ps -ef | grep javakill -9 < PID> (仅在无法正常停止时使用)
  • 启动应用:按实际启动方式恢复(示例为 JAR)。
    • 命令:/path/to/java -jar /path/to/app.jar
  • 日志与诊断:优先查看应用日志与 GC 日志,结合 jstat/jmap/jstack 分析内存与线程问题。
  • 保活与自愈:编写守护脚本定时检测进程并在异常时重启,配合 crontab 定时执行。

四 常用命令与脚本示例

  • 查找 Java 安装目录
    • 命令:ls /usr/lib/jvm/readlink -f $(which java)
  • 设置默认 Java 版本(alternatives)
    • 注册与切换示例:
      • sudo alternatives --install /usr/bin/java java /usr/lib/jvm/java-11-openjdk/bin/java 1100
      • sudo alternatives --config java(按提示选择编号)
  • 环境变量配置(全局)
    • 编辑:sudo vi /etc/profile
    • 内容示例:
      • export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      • export PATH=$JAVA_HOME/bin:$PATH
    • 生效:source /etc/profile
  • 守护脚本最小示例(restart.sh)
    • 作用:检测 JAR 是否运行,未运行则启动并记录日志。
    • 用法:chmod +x restart.sh & & ./restart.sh(可配合 crontab 定时执行)
      #!/bin/sh
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
      export PATH=$JAVA_HOME/bin:$PATH
      JAR_DIR="/opt/myapp"
      JAR_FILE="app.jar"
      LOG_FILE="/var/log/app_restart.log"
      
      restart() {
          
        cd "$JAR_DIR" || return
        if [ ! -f "$JAR_FILE" ];
           then
          echo "$(date): JAR not found: $JAR_FILE" >
          >
           "$LOG_FILE"
          return
        fi
        nohup java -jar "$JAR_FILE" >
          >
           "$LOG_FILE" 2>
          &
          1 &
      
      }
      
      
      check() {
          
        COUNT=$(ps -ef | grep "$JAR_FILE" | grep -v grep | wc -l)
        if [ "$COUNT" -gt 0 ];
           then
          echo "$(date): $JAR_FILE is running" >
          >
           "$LOG_FILE"
        else
          echo "$(date): $JAR_FILE is down, restarting" >
          >
       "$LOG_FILE"
          restart
        fi
      }
          
      
      check
      

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS Java恢复如何实现
本文地址: https://pptw.com/jishu/785779.html
如何在CentOS上配置DHCP与DNS联动 CentOS DHCP如何设置静态IP分配

游客 回复需填写必要信息