Дек 22 2009

Скрипт бекапа свитчей EdgeCore

По мере роста мелких площадок(расчитаные на 5-8 клиентов) возникает вопрос, как красиво забекапить конфигурацию так, что бы максимально упростить поиск требуемой конфигурации и восстановления работы свитча максимально быстро. С Эджкорами работать сложно еще и потому, что копирование на tftp у них происходит не так, как во «взрослых» свитчах, а в интерактивном режиме. То есть сначала мы отдаем команду на копирование, потом в появившемся приглашении вводим адрес сервера, а потом уже вводим имя файла. Это все конечно неудобно, но вполне решаемо.
Скрипт бекапа я решил писать на Ruby. У него довольно обширная, хотя и кривоватая стандартная библиотека и туда входит модуль telnet. Кривоватость модуля telnet связана с тем, что он намертво желает авторизоваться только при появлении приглашения Login, а EdgeCore(Так же как и Cisco кстати) выводит приглашение Username:

Для этого берем стандартный модуль telnet из директории /usr/local/lib/ruby/1.8/net/ и копируем туда, где будем писать скрипт. Я скрипт разместил в /root/bin/

cp /usr/local/lib/ruby/1.8/net/telnet.rb /root/bin/

И теперь в своей директории немного поправим этот файлик telnet.rb
Найдем строку:

login_prompt = /[Ll]ogin[: ]*\z/n

и заменим ее на:

login_prompt = /[Uu]sername[: ]*\z/n

Теперь переходим и к самому скрипту:

#!/usr/local/bin/ruby
require '/root/bin/telnet'
require 'date'
today=Date.today.to_s
file = File.new("/root/bin/switches.txt", "r")
while (line = file.gets)
        (name, ip, tftp, logins, pass)=line.split
        name="#{name}-#{today}.txt"
        tn = Net::Telnet::new("Host"=>ip, "Timeout"=>80, "Prompt"=> /Vty/ )
        tn.login(logins, pass) {|c| print c }
        tn.cmd("copy running-config tftp\n#{tftp}\n#{name}\n")  { |c| print c }
end
file.close

Для работы скрипта еще нужен файл в котором содержится имя свитча, адрес свитча, адрес tftp сервера и логин и пароль админа с правами администрирования.
Файл выглядит так:

sw-first      192.168.250.7   192.168.250.1   admin   admin
sw-second    192.168.20.34   192.168.20.33   admin   admin

На tftp сервере файлы бекапа конфигурации выглядят так:

sw-first-2009-12-07.txt
sw-first-2009-12-08.txt
sw-second-2009-12-07.txt
sw-second-2009-12-08.txt

То есть вы сможете поднять конфигурацию за любой день.
Можно ставить на крон и наслаждаться.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Украинская Баннерная Сеть