小编Jos*_*osh的帖子

Python - 使用/ SSH使用远程主机的env变量

任何有关这个问题的帮助将不胜感激.

基本上我正在编写一个python脚本,它将ssh到各种服务器上并执行脚本.问题是这些脚本使用env变量来启动.即脚本是test.sh但我们使用env变量来启动它,运行test.sh.

到目前为止我所采取的路线,例如Paramiko模块执行命令但实际上并没有采用env变量.

import paramiko
ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('testserver' )

stdin, stdout, stderr = ssh.exec_command(cd /home/test/;$run ./test.sh')
print stdout.readlines()
print stderr.readlines()
ssh.close()
Run Code Online (Sandbox Code Playgroud)

有没有办法使用paramiko?或者我应该采取另一种方式?

谢谢

@Rob

我编辑了脚本进行测试.$ run变量返回空白.

stdin, stdout, stderr = ssh.exec_command('whoami;echo hello; echo $run ; echo goodbye')

['testuser\n', 'hello\n', '\n', 'goodbye\n']
[]
Run Code Online (Sandbox Code Playgroud)

@ Rob第2部分

登录到服务器,我能够回显$ run并返回我也检查过的正确路径/脚本,这是一个在.profile中设置的env变量.我觉得python没有调用.profile.

python linux ssh paramiko

7
推荐指数
1
解决办法
4642
查看次数

标签 统计

linux ×1

paramiko ×1

python ×1

ssh ×1