Python 登录到远程计算机并运行脚本

Python 登录到远程计算机并运行脚本,python,linux,bash,shell,ssh,Python,Linux,Bash,Shell,Ssh,我有一台中央机器和多台远程机器。已配置从中央计算机到远程计算机的无密码连接 我必须从中央虚拟机登录到远程虚拟机,并在远程虚拟机中执行脚本 下面是我正在尝试的示例 中央计算机: #!/bin/sh ssh root@remotemachine1 #run runscript.py in remotemachine1 ssh root@remotemachine2 #run runscript.py in remotemachine2 远程机器 python runscript.py runsc

我有一台中央机器和多台远程机器。已配置从中央计算机到远程计算机的无密码连接

我必须从中央虚拟机登录到远程虚拟机,并在远程虚拟机中执行脚本

下面是我正在尝试的示例

中央计算机:

#!/bin/sh
ssh root@remotemachine1
#run runscript.py in remotemachine1
ssh root@remotemachine2
#run runscript.py in remotemachine2
远程机器

python runscript.py
runscript.py

device = ["device1","device2","device3"]
for i, x enumerate(device):
    print "{}. {}".format(i+1, x)
select_device = raw_input("Choose Device: ")
print "You Selected Device {}".format(device[int(select_device) - 1])
do something
....
....
....
....

repeat = raw_input("Do you want to repeat? Y/N:")
do something
........
........
........

有人帮助我如何在remote1机器上登录和运行脚本,以及如何从remote1机器上退出并在remote2机器上运行脚本。

您可以运行以下命令

ssh  $DEST_USER@$DEST_MACHINE "python -u path_to_your_script.py"
如果您的脚本不存在,请确保您首先使用scp上传脚本,然后执行上述命令

device = ["device1","device2","device3"]
for i, x in enumerate(device):**
    print ("{}. {}".format(i+1, x))
select_device = raw_input("Choose Device: ")
print "You Selected Device {}".format(device[int(select_device) - 1])

安西布尔?这看起来像是典型的ansible用法。不确定PBS作业调度器是否有帮助。您是否希望用户在远程计算机上执行脚本时提供输入?是,用户将在执行过程中传递输入,以便使用脚本
fabric
。要设置硬件,请使用
ansible
或类似工具。但是,用户将如何在执行期间传递输入-u选项将解决这一问题。请试一试。它似乎在整个sshI中运行良好,可以从远程机器上的中央机器运行它,还可以在远程执行期间提供输入。