fabric 0.92 を使用してリモートでファイルを untar しようとしていますが、paramiko から EOF を受け取ります。
def deployFile(self, localdir, remoteroot, filename):
log.info('Deploying file {0} to host {1}...'.format(filename, self.host))
env.password = self.password
env.disable_known_hosts = True
localFile=localdir+"/"+filename
remoteFile='/tmp/{0}'.format(filename)
with settings(host_string = self.connectstring):
log.info('...putting {0}'.format(filename))
put(localFile, "/tmp/", mode=0755)
with cd(remoteroot):
untar='tar zxvf {0}'.format(remoteFile)
log.info('...untarring {0}'.format(filename))
#paramiko.util.log_to_file('paramiko.out')
sudo(untar, pty=True)
paramiko.out からの私の出力:
DEB [20110205-20:49:36.782] thr=1 paramiko.transport: [chan 8] Max packet in: 34816 bytes
DEB [20110205-20:49:36.784] thr=2 paramiko.transport: [chan 7] EOF received (7)
DEB [20110205-20:49:36.785] thr=2 paramiko.transport: [chan 8] Max packet out: 32768 bytes
INF [20110205-20:49:36.785] thr=2 paramiko.transport: Secsh channel 8 opened.
DEB [20110205-20:49:36.788] thr=2 paramiko.transport: EOF in transport thread
ファブリックを使用して他の sudo コマンドを実行できますが、ファイルの untar が壊れているようです。ローカル ファイルとリモート ファイルの md5sum を比較しましたが、同じです。リモート マシンにログインすると、エラーなしでファイルを untar できます。