大多數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支持等等。
謝謝,特別是指向paramiko圖書館。 – AMisra