Привет всем, задачка стоит сделать поиск плоских свичей на сети, гугл особо результатов не дал в поиске(( Поэтому решил с помощью Expect это сделать, идея была такова заходим на свич Telnet'ом и выполняем команды
display mac-address dynamic Ethernet 0/0/1 , display mac-address dynamic Ethernet 0/0/2 ,
итд 1-24 порты кроме Uplink портов, команда выводит кол-во маков за портом , там где больше 3х значит стоит плоский свитч. Пытался сделать на экспекте , но не могу понять как наладить вывод информации в текстовый файлик. Была идея включать логирование при срабатывании условия :
send «display mac-address dynamic Ethernet 0/0/1\r»
expect {
«items displayed = 3» {
log_file $host
send «display mac-address dynamic Ethernet 0/0/1\r»
log_file
}
«items displayed = 4» {
log_file $host
send «display mac-address dynamic Ethernet 0/0/1\r»
log_file
}
«items displayed = 5» {
log_file $host
send «display mac-address dynamic Ethernet 0/0/1\r»
log_file
}
Но минус такого варианта что награмождается тест программы и скорость обработки падает считай на каждый порт он делает команду disp mac-add ... порт N и экспектом ожидает все возможные варианты колл-во маков за портом от 3 до 20 скажем, и так на каждый порт нужно писать. Хотелось бы включить какуюто проверку условия скажем display mac-address dynamic Ethernet 0/0/1 команда выдала: «items displayed = >3 тогда передавать в лог $host номер хоста и порт с кол-вом маков. Заранее извиняюсь, с экспектом да и вообще с написанием скрпитов совсем не шарю, находил в нете готовые варианты и под себя переделывал. Подскажите кто что может)