1.已添加了linux系統環境變量變量於/etc/profile
vi /etc/profile
export JAVA_HOME=/opt/java/jdk1.6.0_43
export JRE_HOME=/opt/java/jdk1.6.0_43
export PATH=$PATH:$JAVA_HOME/bin
2.putty登錄到機器執行set命令可以看到該環境變量,java命令也是可以找到的
3.但是通過python直接ssh訪問該機器,或者Jenkins ssh remote訪問該機器,結果是找不到java命令的。
python ssh到機器后執行set命令可以看到是沒有java相關的環境變量的
造成此問題的原因可能是 :
python或Jenkins登錄ssh客戶端的shell 是csh 、tcsh 、zsh ,不會讀取/etc/profile,而目標機器的shell是bash
解決此問題的方式很簡單加入bash -lc命令即可
如ssh.exec_command("bash -lc 'java -version'")