解决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