#!/usr/bin/perl
# Скрипт backup cisco config
# lev v0.2
# файл host-ios должен быть в формате
# cisco-one::192.168.1.2
# cisco-two::192.168.1.3 и т.д.
#Разрешаем длинные переменные.
use English;
#Наши переменнные:
$BACKUP_DIRS = "/usr/home/lev/backup";
$BACKUP_SOURCE_DIR = "/usr/home/tftp/";
$BACKUP_ARH_DIR = "/usr/home/lev/cisco_arh";
$tftpserver = '192.168.0.2';
#Собственно, сам MIB.
$MIB = '.1.3.6.1.4.1.9.2.1.55';
#А здесь, коммюнити, прописанное на Cisco
$RW = 'CegthCtrhtn';
#файл со списком цисок, с которых будем бэкапить конфиги.
$filename_host = '/usr/home/lev/bin/host-ios';
#Поехали
system ("mkdir $BACKUP_ARH_DIR/`date +%Y-%m-%d`");
system ("mkdir $BACKUP_DIRS/`date +%Y-%m-%d`");
#Опрашиваем все циски по SNMP из файла host
open DATA, $filename_host or die "Невозможно открыть $filename_host: $!";
while ()
{
chomp;
# теперь в $_ есть строка и мы ее разделяем на переменные
($name, $ip) = split(/::/);
# Сам запрос !
system ("snmpset -v 2c -O qv -t 5 -c $RW $ip $MIB.$tftpserver s $name");
#Копируем полученный файл в каталог для бэкапов за сегодняшний проход.
system ("cp $BACKUP_SOURCE_DIR$name $BACKUP_DIRS/`date +%Y-%m-%d`/$name");
}
close DATA;
# Архивируем и удаляем
system ("tar cvjf $BACKUP_ARH_DIR/`date +%Y-%m-%d`/configs-`date +%Y-%m-%d`.tar.gz $BACKUP_SOURCE_DIR* >> /dev/null && rm -f $BACKUP_SOURCE_DIR/*");
"на цисках нужно давать доступ на рв по снмп и как не крути не сикурно это :))"
(c) Andrey Telets
Комментариев нет:
Отправить комментарий