在远程 SFTP 服务器上解压 tar.gz
Untar a tar.gz on a remote SFTP server
我可以使用 SFTP 在远程服务器上解压 .tar.gz
吗?
def untarFile(self,fileName,hostname,username,key_filename):
self.connect(hostname, username, key_filename)
self.username = username
self.key_filename = key_filename
self.fileName = fileName
sftp_client = self.ssh.open_sftp()
if (fileName.endswith("tar.gz")):
print "Extracting files"
tar = sftp_client.tarfile.open(fileName)
tar.extractall()
tar.close()
print "Files extracted to %s" %self.autoRemote
else:
print "Could not extract test code"
我看到的错误:
Connection with server succesfully established with user test...
Extracting files
Traceback (most recent call last):
File "test.py", line 181, in <module>
ssh_obj.untarFile(ssh_obj.testCode, ssh_obj.hostname, ssh_obj.autouser, ssh_obj.autoSSHK)
File "test.py", line 164, in untarFile
tar = sftp_client.tarfile.open(fileName)
AttributeError: 'SFTPClient' object has no attribute 'tarfile'```
您无法使用 SFTP 协议提取远程服务器上的文件。
你所能做的就是使用 SSH 在服务器上执行 (shell) 命令,这就是你需要的。假设您完全可以 shell 访问服务器。
例如,如果您连接到 *nix 服务器,您可以在那里执行 tar
命令。
要在 Python Paramiko 中使用 SSH 执行命令,请参阅:
Python Paramiko - Run command
我可以使用 SFTP 在远程服务器上解压 .tar.gz
吗?
def untarFile(self,fileName,hostname,username,key_filename):
self.connect(hostname, username, key_filename)
self.username = username
self.key_filename = key_filename
self.fileName = fileName
sftp_client = self.ssh.open_sftp()
if (fileName.endswith("tar.gz")):
print "Extracting files"
tar = sftp_client.tarfile.open(fileName)
tar.extractall()
tar.close()
print "Files extracted to %s" %self.autoRemote
else:
print "Could not extract test code"
我看到的错误:
Connection with server succesfully established with user test...
Extracting files
Traceback (most recent call last):
File "test.py", line 181, in <module>
ssh_obj.untarFile(ssh_obj.testCode, ssh_obj.hostname, ssh_obj.autouser, ssh_obj.autoSSHK)
File "test.py", line 164, in untarFile
tar = sftp_client.tarfile.open(fileName)
AttributeError: 'SFTPClient' object has no attribute 'tarfile'```
您无法使用 SFTP 协议提取远程服务器上的文件。
你所能做的就是使用 SSH 在服务器上执行 (shell) 命令,这就是你需要的。假设您完全可以 shell 访问服务器。
例如,如果您连接到 *nix 服务器,您可以在那里执行 tar
命令。
要在 Python Paramiko 中使用 SSH 执行命令,请参阅:
Python Paramiko - Run command