Июн
07
2010
Доработанный скрипт бекапа конфигурации свитчей Edge-Core
Не так давно я написал скрипт бекапа конфигурации свитчей Edge-Core. Я его приводил в статье Скрипт бекапа свитчей EdgeCore. В этом скрипте есть один недостаток, в случае недоступности одного из свитчей, на работе с ним скрипт вылетит. И все остальные свитчи не будут забекаплены. Но поскольку я писал скрипт на Ruby, воспользуемся его средствами для обработки этой ситуации. Перехватим ошибку.
Доработанный скрипт выглядит так:
#!/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" begin tn = Net::Telnet::new("Host"=>ip, "Timeout"=>80, "Prompt"=> /Vty/ ) rescue Exception => e puts "Switch #{name} unreach" next end tn.login(logins, pass) {|c| print c } tn.cmd("copy running-config tftp\n#{tftp}\n#{name}\n") { |c| print c } end file.close
Этот скрипт забекапит все свитчи, и не вылетит в случае недоступности одного из них.




By evil, 05.07.2010 @ 12:14
а не подскажите как исправить такую ошибку?
ES3510-0#C:/Ruby191/bin/telnet.rb:560:in `waitfor’: timed out while waiting for more data (Timeout::Error)
from C:/Ruby191/bin/telnet.rb:695:in `cmd’
from C:/Ruby191/bin/telnet.rb:740:in `login’
from C:/Ruby191/bin/sw0.rb:10:in `’
By hilik, 05.07.2010 @ 12:23
Скрипт не достучался к свитчу, точнее не дождался ответа.
By evil, 05.07.2010 @ 12:34
он заходит на свич, т.е. логин ок, а дальше ниче не делает, а потом обрывается по тайм-ауту
By evil, 05.07.2010 @ 14:27
в файле switches.txt такая запись должна быть? – имя свитча, ip свитча, ip tftp, логин и пасс свича?
By hilik, 05.07.2010 @ 15:05
А вы патчили telnet.rb как описано тут:
http://www.hilik.org.ua/%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D0%B1%D0%B5%D0%BA%D0%B0%D0%BF%D0%B0-%D1%81%D0%B2%D0%B8%D1%82%D1%87%D0%B5%D0%B9-edgecore/#more-3434
By evil, 05.07.2010 @ 15:13
да, патчил…
By hilik, 05.07.2010 @ 17:15
А какое приглашение высвечивает ваш свитч?
Там есть в директории со скриптом такой файл save_conf_dump.log, в него пишется дамп диалога. По нему можно определить чего не дожидается скрипт.
By evil, 05.07.2010 @ 20:48
скрипт заходит в привелигилированый режим свитча, и как бы должно происходить копирование running-config, а ничего не происходит, и по тайм-ауту откл… save_conf_dump.log – нету, я запускаю все это дело под виндой, может в этом проблема?
By hilik, 05.07.2010 @ 21:43
опыта запуска скрипта под виндой у меня нет. Ручное копирование на tftp работает?
By evil, 05.07.2010 @ 22:33
да, вручную все норм., но вот девайсов оч. много, хотелось бы немного автоматизировать ((