LINUX.ORG.RU

Поиск не управляемых коммутаторов (Expect)

 


0

1

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

Я толком не понял, что вам нужно, но, с одной стороны, текст программы для expect можно генерить скриптом, с другой стороны, можно просто выводить в лог весь диалог expect'а, а этот лог-файл потом парсить скриптом на другом языке, выбирая из него по нужному условию.

mky ★★★★★
()

Huawei?!

Про expect не подскажу, давно не использовал. IMHO проще на чём-нибудь другом.

display mac-address dynamic Ethernet 0/0/2

Это ведь Huawei?
тогда вот гуглится (не проверял, но судя по иероглифам в описании должно работать!)
https://metacpan.org/pod/Net::Telnet::Huawei

скорость обработки

- надо вытащить все и нагрепать нужные
- скачать таблицу по snmp и тогда уже искать должно быть быстрей

pru-mike ★★
()
Последнее исправление: pru-mike (всего исправлений: 1)
Ответ на: Huawei?! от pru-mike

huawei s2300/3300

Решил expect'ом пробежаться по свичам выполняя команды, затем получившийся лог уже разбирать. Спасибо за ответы)

atraides
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.