【问题标题】:Running a local python script with args on a remote host在远程主机上运行带有 args 的本地 python 脚本
【发布时间】:2021-02-04 09:15:14
【问题描述】:

我得到了一个 python 脚本,我从中使用 ssh 打开到不同主机的连接。在这个会话中,我试图运行另一个 python 脚本,带有几个参数(脚本在我的机器上,而不是在服务器上),但是参数把它搞砸了。它将参数链接到 python 解释器而不是我的脚本。

我的代码如下所示:

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

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

未知选项:a

未知选项:r

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

【问题讨论】:

    标签: python ssh arguments


    【解决方案1】:

    要在不同的服务器上执行脚本,请使用 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

    【讨论】:

    • 没有 paramiko 有没有办法让它工作?
    • 是的,比如:ssh user@machine python
    猜你喜欢
    • 2014-04-14
    • 1970-01-01
    • 1970-01-01
    • 2018-07-18
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多