在远程主机上使用args运行本地python脚本

时间:2020-10-21 12:46:05

标签: python ssh arguments

我有一个python脚本,可以使用ssh从该脚本打开与其他主机的连接。在此会话中,我尝试运行另一个带有多个参数的python脚本(该脚本在我的计算机上,而不在服务器上),但这些参数弄乱了它。它将参数链接到python解释器而不是我的脚本。

我的代码如下:

ssh remotehost python2 < /path/to/script —-arg1 hello —-arg2 goodbye

我要得到的错误是参数名称中每个字符的未知选项,例如: 未知选项:-

未知选项:a

未知选项:r

等。无论如何,我可以传递参数而不会出现此错误?我尝试使用sys args,但是我的参数有时是句子,而且解析得不好。.

1 个答案:

答案 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

请参阅Run local python script on remote server