Поиск по этому блогу

среда, 17 ноября 2010 г.

auto telnet bash script

Небольшой скрипт для автоматизации работы 

Полезный скрипт для автоматизации рутинной работы. Скрипт лезет по telnet  и выполняет определенный набор команд. Например если вам нужно обновить прошивку на 100 коммутаторах, эта штука вам подойдет. Набор команд находится в файле commands.
Короче говоря этот скрипт автоматизирует работу, и сам заходит по telnet и выполняет команды.

Сами команды находятся в файле 

[tsolodov@myserver ~/bin/conveer]$ cat ./commands
enable lldp
config lldp message_tx_interval 30
config lldp tx_delay 2
config lldp message_tx_hold_multiplier 4
config lldp reinit_delay 2
config lldp notification_interval 5
config lldp forward_message enable
config lldp ports 1-24 notification disable
config lldp ports 1-24 admin_status disable
config lldp ports 25-28 notification enable
config lldp ports 25-28 admin_status tx_and_rx
config lldp ports 25-28 basic_tlvs port_description system_name system_description system_capabilities enable
config lldp ports 25-28 dot1_tlv_pvid enable
config lldp ports 25-28 dot1_tlv_vlan_name vlanid 1-4094 enable
config lldp ports 25-28 dot1_tlv_protocol_identity eapol enable
config lldp ports 25-28 dot1_tlv_protocol_identity lacp enable
config lldp ports 25-28 dot1_tlv_protocol_identity gvrp enable
config lldp ports 25-28 dot1_tlv_protocol_identity stp enable
save


Вот сам скрипт:

[tsolodov@myserver ~/bin/conveer]$ cat ./conveer.sh
#!/usr/local/bin/bash
FILE=`cat $1 | sort -u` 
                 
for I in $FILE
  do
                 
 if [ -n "$I" ]
  then
 

(sleep 1; echo login_to_device; echo "password_to_device";sleep 2; cat ./commands; sleep 5; )| telnet $I                
 fi
done

параметр скрипта – путь с файлу с IP адресами в
Вот пример такого файла
[tsolodov @myserver ~/bin/conveer]$ cat ./ips
127.0.0.1
127.0.0.2


Вот и все, запускаем
[tsolodov@myserver ~/bin/conveer]$  ./conveer.sh ./ips
И на всех железяках будут выполнены команды как в файле ./commands

2 комментария:

  1. Тоже на днях ваял подобное, правда на питоне и с учетом того что сеть у нас не однородная (есть и д-линки 3028 и линксисы sps224g4), посему надо их различать. Об элегантности особо не заботился, задача стояла чтобы работало, так что вот: http://pastebin.com/HNxyymDp

    С таймаутами в телнет сессии к длинку можно поиграться, с этими точно все работает - если убрать нет, можно попробовать по 0.5 скажем.

    ОтветитьУдалить
  2. Подскажите начинающему, как переделать скрипт, если:
    1. Ситуация такая же почти один в один. bash telnet-сессия удаленный хост запуск телнета скриптом.
    2. НО Исполняемый скрипт написан на Перле и лежит на удаленной машине (роутер), права на исполнение есть (на удаленной машине локально запускается и все отрабатывает правильно).
    3. И Нужно вернуть результат исполнения скрипта на удаленной машине в telnet сессию на локальном компьютере-инициаторе для дальнейшего использования.

    ОтветитьУдалить