Скрипт бекапа свитчей 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
То есть вы сможете поднять конфигурацию за любой день.
Можно ставить на крон и наслаждаться.



