- У меня есть текстовый файл с IP-адресами маршрутизатора (ips.txt)
- У меня есть текстовый файл, в котором есть команды, которые необходимо передать маршрутизатору (magiccmd.txt)
Я открыл файлы ips.txt и magiccmd.txt и преобразовал строку в список. Так что теперь мои IP-адреса сохраняются в виде списка «ip_add_list», а мои команды сохраняются в виде списка «magic_list».
Теперь, используя цикл for, я могу подключиться по SSH к первому маршрутизатору и выполнить первую команду. Точно так же сценарий появляется во втором маршрутизаторе и выполняет первую команду. Используя цикл for, я могу выбирать элементы из списка ip_add_list. Но я могу выбрать только 1-й предмет из списка «magic_list». Невозможно выбрать второй элемент из списка 'magic_list'
Может кто-нибудь дать мне знать, чего не хватает в моем сценарии? Почему он не выполняет 2-ю команду из списка?
Я просмотрел различные статьи, посвященные выбору команд из TXT-файла и передаче его маршрутизатору. Я могу видеть статьи, относящиеся к paramiko, но не могу найти что-то, связанное с «pexpect».
#!/usr/local/bin python3.6
import pexpect
import sys
import time
import re
ssh_un = "remotessh"
def dologinRG(child):
print ('logging into RG')
# Enter Password
child.expect ('password:')
child.sendline ('test')
return
def domagiccmd(child):
print ('issue magic commands')
for magic_cmds in magic_list:
print (magic_cmds)
child.expect ('NOS/')
child.sendline ('magic')
child.expect ('NOS/')
child.sendline (magic_cmds)
child.expect ('NOS/')
return
for ip_string in open("ips.txt"):
ip_add_list = ip_string.strip().split(',')
print (ip_add_list)
for magic_string in open('magiccmd.txt'):
magic_list = magic_string.strip().split(',')
print (magic_list)
for linux_string in open('linuxcmd.txt'):
linux_list = linux_string.strip().split(',')
for wan_ip in ip_add_list:
print (wan_ip)
child = pexpect.spawnu ('ssh %s@%s' % (ssh_un, wan_ip), logfile=sys.stdout, timeout = None)
dologinRG(child)
domagiccmd(child)