ожидать, что скрипт выйдет из синхронизации?

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

Из того, что я вижу, различия заключаются в наличии строки, которую модуль ACE выдает следующим образом: Warning: Permanently added '[x.x.x.x]' (RSA) to the list of known hosts.\r\r\n кажется, что это просто отбрасывает остальную часть скрипта, хотя ни один из моих операторов ожидания даже не ищет этого!

У меня не было ничего, кроме кошмаров с expect и тем, как он интерпретирует информацию из модулей ace; Может ли кто-нибудь пролить свет на эту проблему или дать какие-либо советы о том, как заставить эти устройства вести себя, когда я пытаюсь написать для них сценарий?


person drew    schedule 14.10.2011    source источник


Ответы (1)


Если вы обрабатываете одно соединение за раз, вы должны убедиться, что вы полностью разорвали одно, прежде чем открывать следующее. Самый простой способ сделать это - поставить:

close
wait

В конце цикла (foreach) по объектам, к которым нужно подключиться.


Если вы выполняете несколько подключений одновременно, вам нужно позаботиться об использовании параметра -i для различных команд (особенно expect, send и close) и заставить все работать правильно, в дополнение к исправлению ошибок. Я упоминал ранее. Это можно сделать, но это значительно сложнее и не стоит того, если вам не нужен параллелизм.

person Donal Fellows    schedule 14.10.2011