O problema básico com
ssh user@machine python < test.zip
é que test.zip
é enviado para ssh
em vez de python
.
A solução em estouro de pilha pode funcionar, se você implementar o script python mencionado aqui (copiado abaixo):
#!/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()
Salve-o como zip_parse_script.py
na máquina remota e executará seu comando usando
test.zip | ssh user@machine python /path_to_python_script/zip_parse_script.py