LINUX.ORG.RU

Сообщения polkovnikiv

 

Скрипт на 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

 

polkovnikiv
()

RSS подписка на новые темы