Перед этим я адаптирую метод ниже, чтобы сохранить выделенный файл для каждой команды, но это проблематично, когда все больше и больше команд используются, и каждый раз приходится модифицировать этот код.
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будет сгенерировано.
Пожалуйста, сообщите мне дальше.Спасибо.