对此问题的任何帮助将不胜感激。
基本上我正在编写一个 python 脚本,它将 ssh 到各种服务器并执行脚本。问题是这些脚本使用环境变量来启动。即脚本是test.sh,但我们使用环境变量来启动它,运行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()
有没有办法使用 paramiko?还是我应该采取的其他方式?
谢谢
@抢
我编辑了脚本进行测试。$run 变量返回空白。
stdin, stdout, stderr = ssh.exec_command('whoami;echo hello; echo $run ; echo goodbye')
['testuser\n', 'hello\n', '\n', 'goodbye\n']
[]
@抢劫第 2 部分
登录到服务器,我可以回显 $run,它会返回我也检查过的正确路径/脚本,这是在 .profile 中设置的环境变量。我觉得 python 没有调用 .profile 。