Python – 使用/ SSH使用远程主机的envvariables

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

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

到目前为止,我采取的路线,如Paramiko模块执行命令,但实际上并没有采取envvariables。

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? 或者我应该采取另一种方式?

谢谢

@罗布

我编辑脚本来testing。 $ runvariables回来了。

 stdin, stdout, stderr = ssh.exec_command('whoami;echo hello; echo $run ; echo goodbye') ['testuser\n', 'hello\n', '\n', 'goodbye\n'] [] 

@罗布部分2

login到服务器,我可以echo $ run,并返回正确的path/脚本我也检查,这是一个ENVvariables设置在.profile。 我觉得像python不调用.profile。

ssh.exec_command不解释远程.profile 。 尝试这个:

 ssh.exec_command('. .profile ; cd /home/test/;$run ./test.sh') 

救援。

除此之外,它提供了一个漂亮的界面,利用paramiko(请参阅ParamikoMachine),还可以让您操作远程环境 。