我有一个python脚本,可以使用ssh从该脚本打开与其他主机的连接。在此会话中,我尝试运行另一个带有多个参数的python脚本(该脚本在我的计算机上,而不在服务器上),但这些参数弄乱了它。它将参数链接到python解释器而不是我的脚本。
我的代码如下:
ssh remotehost python2 < /path/to/script —-arg1 hello —-arg2 goodbye
我要得到的错误是参数名称中每个字符的未知选项,例如: 未知选项:-
未知选项:a
未知选项:r
等。无论如何,我可以传递参数而不会出现此错误?我尝试使用sys args,但是我的参数有时是句子,而且解析得不好。.
答案 0 :(得分:0)
要在其他服务器上执行脚本,请使用paramiko连接并执行命令:
Import paramiko
client = paramiko.SSHClient()
client.load_system_host_keys()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host,port,user,password)
stdin, stdout, stderr = client.exec_command('python2 /path/to/script hello goodbye')
client.close()
完整文档: http://docs.paramiko.org/en/stable/api/client.html
要在其他服务器上运行本地脚本,请使用:
ssh user@machine python < script.py - arg1 arg2