Резервное копирование конфигурации роутера с использованием Python

Я использую Python и Paramiko. Я пытаюсь сделать резервную копию маршрутизатора сетевого устройства с помощью Python. Ниже мой сценарий. Однако я получаю ошибку

import paramiko
import sys
import time

HOST = "10.11.214.143"
USER = "admin"
PASS = "passwd"


client1=paramiko.SSHClient()
client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client1.connect(HOST,username=USER,password=PASS)
  print "SSH connection to %s established" %HOST

#copying config to tftp
stdin, stdout, stderr = client1.exec_command('copy nvram:startup-config tftp: 10.11.214.144')
print stdout.read()


Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    client1.exec_command('copy nvram:startup-config tftp:')
  File "C:\Python27\lib\site-packages\paramiko\client.py", line 436, in exec_command
    chan = self._transport.open_session(timeout=timeout)
  File "C:\Python27\lib\site-packages\paramiko\transport.py", line 716, in open_session
    timeout=timeout)
  File "C:\Python27\lib\site-packages\paramiko\transport.py", line 800, in open_channel
    raise SSHException('SSH session not active')
SSHException: SSH session not active

1 ответ

Вы можете попробовать следующий подход; Я видел сбой exec_command() на некоторых маршрутизаторах, но не могу гарантировать, что он подходит вашей проблеме:

import paramiko
import sys
import time

HOST = "10.11.214.143"
USER = "admin"
PASS = "passwd"


client1=paramiko.SSHClient()
client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client1.connect(HOST,username=USER,password=PASS)
print "SSH connection to %s established" %HOST

console = client1.invoke_shell()
console.recv(65535)

console.send("copy nvram:startup-config tftp: 10.11.214.144\n")

# Adjust sleep as it's needed by your command
time.sleep(.5)
console.recv(65535)

# Eventually quit gracefully with the right command
console.send("quit\n")
time.sleep(.5)

client1.close()
Другие вопросы по тегам