python使用paramiko模块ssh连接远程主机,环境变量问题 1C

想写个脚本去远程维护主机,执行相应命令,但是通过python使用paramiko模块ssh连接远程主机,环境变量不跟随用户,通过export环境变量也不起作用,
#!/usr/bin/python
import paramiko,fileinput
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
for line in fileinput.input(r'./mac_list'): #mac_list中存放的是ip username pwd
line=line.rstrip()
if line:
mac_ip,usrname,pwd=line.split() #分割line,向mac_ip、username、pwd赋值
ssh.connect(mac_ip,22,usrname,pwd) #建立连接
stdin,stdout,stderr=ssh.exec_command("export PATH=/bea/tuxedo/tuxedo11gR1/bin:$PATH") #export环境变量不生效,单独在目标主机执行这条语句可行
......
print stdout.readlines()
ssh.close()
#通过命令行输入效果

#通过相应用户登录后,环境变量并没有跟随用户

stdin,stdout,stderr=ssh.exec_command("echo $PATH")
stdout.readlines()
['/usr/local/bin:/bin:/usr/bin\n']
#export环境变量
stdin,stdout,stderr=ssh.exec_command("export PATH=/bea/tuxedo/tuxedo11gR1/bin:$PATH")
#未生效
stdin,stdout,stderr=ssh.exec_command("echo $PATH")
stdout.readlines()
['/usr/local/bin:/bin:/usr/bin\n']


4个回答

直接修改profile文件

realMiga
realMiga 楼主你好,qingwssh环境变量问题怎么解决好的啊,谢谢
11 个月之前 回复
u013451083
Anderson_young 我修改过后 然后source还是不生效呢?
大约 4 年之前 回复

你好,你这个问题解决了吗?

我也遇到这个问题了,诡异的是,第二次执行的时候就能获取到了。

楼主你好,ssh环境变量问题怎么解决好的啊,谢谢回复

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问