pramiko .get показывает противоречивый вывод

#python #paramiko

Вопрос:

Я использую следующий код для выполнения команд на удаленной машине через paramiko.

 commands = [[r"1st commands goes in here", "remote path", "localpath"],
[r"2nd commands goes in here", "remote path", "localpath"]]

for command in commands:
    # create a new session
    try:
        server = ShellHandler(ip_address, "admin", admin_pw)
        open_ftp = server.ftp()
    except:
        sys.exit("something went wrong, please try again")

    cmd = server.execute("cd /home/admin/automated")

    cmd = server.execute(command[0])

    open_ftp.get(command[1], command[2])

    # end the current session
    avamar.ssh.close()
    open_ftp.close()
 

Я создаю новое соединение для каждой команды, перенаправляю вывод в файл и загружаю этот файл с помощью pramiko .get

Я получаю противоречивый вывод из этого кода, иногда он работает просто отлично и захватывает файлы, а иногда выдает эту ошибку:

 Traceback (most recent call last):
  File "Z:gdrivepythonprojectsautomationalphaloop.py", line 726, in <module>
    open_ftp.get(remote_path, local_path)
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 811, in get
    size = self.getfo(remotepath, fl, callback, prefetch)
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 783, in getfo
    with self.open(remotepath, "rb") as fr:
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 372, in open
    t, msg = self._request(CMD_OPEN, filename, imode, attrblock)
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 822, in _request
    return self._read_response(num)
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 874, in _read_response
    self._convert_status(msg)
  File "C:Usersadam4AppDataLocalProgramsPythonPython38-32libsite-packagesparamikosftp_client.py", line 905, in _convert_status
    raise IOError(errno.EACCES, text)
PermissionError: [Errno 13] Permission denied
 

есть идеи, что здесь не так!

Ответ №1:

эта ошибка связана с разрешением на файл на вашем компьютере.

Комментарии:

1. спасибо, оказывается, я получал эту ошибку, когда файл принадлежал root.

2. я добавил cmd = avamar.execute(«администратор chown:администратор {}».формат(команда[2])), и это устранило проблему