Добрый день.
Написал на Exscript пару простеньких скриптов, например поиск мак адреса по всем коммутаторам сети, или перезагрузка кластера из 40 точек доступа.
Работаю над скриптом, который мог бы менять текущую конфигурацию коммутатора и сохранять её. С первым проблем нет, а вот со вторым трабл.
Если запустить такой скрипт:
Код: Выделить всё
from Exscript import Account
from Exscript.protocols import SSH2
acc = Account('admin','password')
def exconnect(ip):
conn = SSH2()
print('\nConnecting to ' + ip)
try:
conn.connect(ip)
conn.login(acc)
conn.execute('conf')
print(conn.response)
conn.execute('ip igmp snooping')
print(conn.response)
conn.execute('ex')
print(conn.response)
conn.execute('wr')
conn.execute('y')
print(conn.response)
conn.send('exit')
conn.close()
except Exception as e:
print(e)
if __name__ == "__main__":
exconnect('192.168.20.67')
, то вывод будет
Код: Выделить всё
Connecting to 192.168.20.67
conf
ip igmp snooping
ex
Timeout while waiting for response from device
, причём перед последним предложением скрипт думает секунд 30. То есть очевидно, что скрипт не знает как или когда отправить подтверждающее "Y".
Пробовал перед отправкой "Y" вставить ожидание запроса: conn.set_prompt(r'Overwrite file \[startup-config\].... (Y\/N)\[N\] \?')
Но результат аналогичный.
Питон 3.7
Прошу помочь, как всё это верно оформить.