Я запускаю скрипт на своем сервере и пытаюсь получить некоторые файлы из моего брандмауэра.Я получаю ошибку «файл не найден» при обращении к файлу с использованием переменной среды (знак $
).B, но я могу получить свой файл, когда я введу нормальный путь.Я знаю, что код не выглядит хорошо, это всего лишь быстрый пример.Вот мой рабочий код:
_savedLocation = "/home/kartal/Desktop/aaa.tgz"
folder, savedLocation = os.path.split(_savedLocation)
remotepath = "$FWDIR/bin/upgrade_tools/"
remotefile = remotepath + savedLocation
stdin, stdout, stderr =
ssh.exec_command("cd {} && yes | ./migrate export {} ".format(remotepath, savedLocation))
time.sleep(120)
command = "cd {} && chmod 777 {}".format(remotepath, savedLocation)
stdin, stdout, stderr = ssh.exec_command(command)
sftp = ssh.open_sftp()
sftp.get(remotefile, _savedLocation)
sftp.close()
ssh.close()
Если я использую реальный путь в качестве remotepath = "/opt/r80/fw1/bin/upgrade_tools/"
, код работает.
Кстати, я запускаю скрипт "migrate" на первом шагес $FWDIR
.Так что $FWDIR
работает с exec_command
, но не в SFTP get
.
Где я делаю неправильно и что мне делать?