通过ssh远程运行由多个文件组成的python脚本

通过ssh远程运行由多个文件组成的python脚本

我想通过 ssh 远程运行一个 python 脚本。对于单个脚本,这将是这样的:

ssh user@machine python test.py

如果我的 Python 程序由多个文件组成,那么我就没那么幸运了。由于 Python 可以执行 zip 文件,所以我创建了一个,它在我的本地系统上完美运行:

python test.zip

通过 ssh:

ssh user@machine python < test.zip

我收到错误消息“语法错误:非 UTF-8 代码以...开头”。存档中的两个文件都以“-- 编码:utf-8 --”。

我要做什么才能让它成功?

答案1

基本问题

ssh user@machine python < test.zip

test.zip发送到ssh而不是python

解决方案堆栈溢出 可能会有效,如果你能实现那里提到的 python 脚本(复制如下):

#!/usr/bin/python 

import sys
import os
import zipfile
import StringIO
import zipimport
import time

sys.path.append('/tmp')

class SinEater(object):
    def __init__(self):
        tmp = str(int(time.time()*100)) + '.zip'
        f = open(tmp, 'w')
        f.write(sys.stdin.read(1024*64)) # 64kb limit
        f.close()
        try:
            z = zipimport.zipimporter(tmp)
            z.load_module('foo')

        except:
            pass

if __name__ == '__main__':
    print 'herp derp'
    s = SinEater()

另存为zip_parse_script.py 在远程机器上并将使用执行你的命令

test.zip | ssh user@machine python /path_to_python_script/zip_parse_script.py

相关内容