Скрипт на Bash
Всем привет. Пробую освоить Bash, но в основном приходится делать на живых примерах (подстраиваю под свои нужды :) )
Итак, есть простенький скрипт на заход по Telnet на коммутаторы из отдельного списка ip. В нем до сих пор просто давались однотипные команды. Лог писался. Но вот следующий уровень: нужно сначала данные запросить у текущего коммутатора, а потом из них сделать выборку нужной информации и вставить в команду, которую сразу же этому коммутатору дать.
Например:
config traffic_segmentation 1-24 forward_list 25-28 config traffic_segmentation 25-28 forward_list 1-28
Тут все просто. Дал команду Send и вперед на все коммутаторы по очереди.У всех все одинаково.
А вот тут:
config igmp_snooping multicast_vlan 817 add source_port 25-28тут заранее я не знаю номер vlan. В данном случае он 817б но может быть любым.
Узнать его я могу по команде например такой:
show igmp_snooping multicast_vlanКоммутатор выдаст:
Command: show igmp_snooping multicast_vlan Multicast VLAN Global State : Enabled VLAN Name : 804 VID : 804 Untagged Member Ports : 1-24 Tagged Member Ports : Source Ports : 25-28 Untagged Source Ports : Status : Enabled Replace Source IP : NoneИ отсюда нужно забрать мой номер: 804, а после этого видимо присвоить его переменной например «А» и вставить в команду:
config igmp_snooping multicast_vlan А add source_port 25-28А вот как эту выборку сделать, присвоить переменной и вставить-это вопрос на который я не знаю ответа. Может есть пример готовый или варианты по моей задаче-буду признателен.
Заранее спасибо за любую помощь.
P.S. Пример скриптика, которым иногда пользуемся для элементарных задач:
#!/usr/bin/expect -f
spawn telnet [lindex $argv 0]
expect "sername:"
send "xxxxxxx\r" -тут логин
send "xxxxxxx\r" -тут пароль
send "config lldp ports 25-28 notification enable\r"
send "config lldp ports 25-28 admin_status tx_and_rx\r"
send "config lldp ports 25-28 basic_tlvs port_description system_name system_description enable\r"
send "system_capabilities enable\r"
send "config lldp forward_message enable\r"
send "config lldp ports 25-28 notification enable\r"
send "config lldp ports 25-28 basic_tlvs all enable\r"
send "enable lldp\r"
send "save\r"
expect eof