大多数Linux shell中,可以通过执行一个子shell中运行在不同的工作目录下的命令
/home/usr> (cd /usr/local/bin;pwd)
/usr/local/bin
/home/usr>
您可以通过ssh对远程系统执行相同的操作。根据你使用的ssh客户端,你可能会稍微减少一些。例如,使用paramiko s exec_command,将为每个命令创建一个新的远程shell,因此cd /path/on/remote/machine;./run.sh就足够了。
有关Python 2.X的paramiko甲简约例子是
import sys
import paramiko
try:
hostname, username, password, targetpath = sys.argv[1:5]
except ValueError:
print("Failed, call with hostname username password targetpath")
command = "cd {};pwd".format(targetpath)
print("Command to send: {}".format(command))
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=hostname, username=username, password=password)
stdin, stdout, stderr = ssh.exec_command("cd {};pwd".format(targetpath))
print(stdout.read())
ssh.close()
python3应该是相似的。还有其他选项,如Python的libssh2绑定,pexpect的ssh支持等等。