巡检报告 JDK版本号显示 “bash: java: command not found” 排查思路

  故障排查指南
内容纲要

概要描述


对于 TDH 巡检工具,有时由于环境配置问题,可能会导致巡检报告输出时出现异常;本文就常见的“基础环境检查” –> “JDK版本号” 显示“bash: java: command not found” 问题提出几点排查思路供参考。

file

详细说明


  • TDH-Manager 节点执行如下命令验证免密是否有问题

    ssh -o StrictHostKeyChecking=no -i /etc/transwarp/transwarp-id_rsa transwarp@<问题节点 hostname> 
    # 如上图 tdh03 有问题,那命令如下:
    ssh -o StrictHostKeyChecking=no -i /etc/transwarp/transwarp-id_rsa transwarp@tdh03

    若验证免密失败,需要手动输入密码才能 ssh 登录,那就先解决免密认证问题再继续往下。

  • 查看 TDH-Manager 节点 /etc/inspection/config/env.properties 里的相关配置是否正确

file

  • 执行如下命令查看结果
    sudo ssh -p 22 -o StrictHostKeyChecking=no -i /etc/transwarp/transwarp-id_rsa $nodeUser@<节点ip> java -version

file

正如巡检报告显示,该命令也会报“bash: java: command not found ”

  • 执行如下命令查看是否能在 $PATH 中找到 java 命令
    sudo ssh -p 22 -o StrictHostKeyChecking=no -i /etc/transwarp/transwarp-id_rsa $nodeUser@<节点ip> which java

file

该命令会提示 which: no java in (/usr/local/bin:/usr/bin),即在 $PATH 下找不到 java 命令

  • 执行如下命令查看是否能读取到 $JAVA_HOME
    sudo ssh -p 22 -o StrictHostKeyChecking=no -i /etc/transwarp/transwarp-id_rsa $nodeUser@<节点ip> echo $JAVA_HOME

file

若该命令能正常显示 $JAVA_HOME,则可以继续后面的步骤;
若该命令不能正常显示 $JAVA_HOME,则需要到对应节点检查是否正确安装了 JDK 环境

  • ssh 登录异常节点查看 ls -lrt /usr/bin/java 命令对应的软链接是否已经失效或者命令不存在

  • 通过软链接建立 java 可执行命令,之后再次巡检查看巡检报告是否正常

    rm -rf /usr/bin/java && ln -sv $(which java) /usr/bin/java

file

这篇文章对您有帮助吗?

平均评分 0 / 5. 次数: 0

尚无评价,您可以第一个评哦!

非常抱歉,这篇文章对您没有帮助.

烦请您告诉我们您的建议与意见,以便我们改进,谢谢您。