Разархивируйте tar.gz на удаленном SFTP-сервере - PullRequest
1 голос
/ 24 сентября 2019

Могу ли я использовать 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'```

1 Ответ

0 голосов
/ 24 сентября 2019

Вы не можете извлекать файлы на удаленном сервере, используя протокол SFTP.

Все, что вы можете сделать, это использовать SSH для выполнения команды (оболочки) на сервере, которая делает то, что вам нужно.Предполагая, что у вас есть доступ оболочки к серверу вообще.

Например, если вы подключаетесь к * nix-серверу, вы можете использовать там команду execute tar.

Для выполнения команды с использованием SSH в Python Paramiko см .:
Python Paramiko - Команда запуска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...