任何有关这个问题的帮助将不胜感激.
基本上我正在编写一个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.