Запустите команду (для резервного копирования конфигурации) на нескольких серверах (маршрутизаторах) в Python - PullRequest
0 голосов
/ 09 ноября 2018

Можно ли сделать так, чтобы скрипт перебирал каждый IP-адрес и выполнял настройку резервного копирования на локальном tftp-сервере

   import paramiko
    import sys
    import time


    USER = "root"
    PASS = "cisco"
    HOST = ["10.10.10.10","11.11.11.11","12.12.12.12"]
    i=0
    while i <len(HOST)
    def fn():
      client1=paramiko.SSHClient()
      #Add missing client key
      client1.set_missing_host_key_policy(paramiko.AutoAddPolicy())
      #connect to switch
      client1.connect(HOST,username=USER,password=PASS)
      print "SSH connection to %s established" %HOST

     show run | redirect tftp://10.10.10.20/HOST.cfg 
    print "Configuration has been backed up"for  %HOST
    i+1

show run | redirect tftp://10.10.10.20/HOST.cfg --- можно ли использовать имя переменной в качестве имени текстового файла?

1 Ответ

0 голосов
/ 10 ноября 2018
  • Используйте for h in HOST для итерации массива HOST;
  • Используйте SSHClient.exec_command для выполнения команды;
  • Используйте string.format для форматирования ваших сообщений и команд.
for h in HOST:
    client = paramiko.SSHClient()
    #Add missing client key
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    #connect to switch
    client.connect(h, username = USER, password = PASS)
    print("SSH connection to {0} established".format(h))
    command = "show run | redirect tftp://10.10.10.20/{0}.cfg".format(h)
    (stdin, stdout, stderr) = client.exec_command(command)
    for line in stdout.readlines():
        print(line)
    client.close()
    print("Configuration has been backed up for {0}".format(h))

Обязательное предупреждение: не используйте AutoAddPolicy - Вы теряете защиту от MITM-атак , делая это. Для правильного решения см. Paramiko "Неизвестный сервер" .

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