解決ssh登錄后全局環境變量獲取不到的問題


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'")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM