Создать выделенный файл вывода каждой команды отправки netmiko (команды в текстовом файле) - PullRequest
0 голосов
/ 22 марта 2019

Перед этим я адаптирую метод ниже, чтобы сохранить выделенный файл для каждой команды, но это проблематично, когда все больше и больше команд используются, и каждый раз приходится модифицировать этот код.

if  device['device_type'] == "cisco_ios" :
        file=open('show_version' + '-' + device['ip']+".txt","a")
        file.write(connection.send_command('show version'))
        file.close()
        file=open('show_arp' + '-' + device['ip']+".txt","a")
        file.write(connection.send_command('show arp'))
        file.close()

Вышеуказанный метод больше не работает, когда нужно использовать больше команд ... Так что я хочу создать список команд в текстовом файле и отправить команду чтения из файла и отделить каждый вывод каждой командной строки(commands.txt) в свой собственный файл с уникальным именем (имя команды в качестве имени файла).Я изменил приведенный ниже код, но он сохраняет все выходные команды в одном файле.

Приведенный ниже код генерирует все выходные данные в одном файле, но не может сделать его несколькими файлами.

with open("commands.txt") as cmd_file:
    commands = cmd_file.readlines()

for device in devices['device']:
    try:
        print('Connecting to device:', device['ip'])
        connection = netmiko.ConnectHandler(**device)
        if  device['device_type'] == "cisco_ios" :
            filename = connection.base_prompt + '-' + device['ip'] + '.txt'
            with open(filename, 'w') as out_file:
                for command in commands:
                    out_file.write(connection.send_command(command))
            connection.disconnect()
    except netmiko_exceptions as e:
            print('Failed to ', device['ip'], e)

Команды cisco для содержимого файла commands.txt, такие как show version, show interface, show chassic

В этом случае ... final .. 3 файла с именами showversion.txt, showinterface.txt и showchassic.txtбудет сгенерировано.

Пожалуйста, сообщите мне дальше.Спасибо.

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