Как сделать ежедневный бэкап множества кошек?
На самом деле есть множество способов. Например:
- встроенный в cisco cron
- внешний скрипт, который парсит вывод runing-config или sturtup-config
- внешний скрипт, который копирует running-config на какой либо ресурс
Собственно по последнему пути мы и пойдем.
Для начала на кошках нужно указать имя пользователя и пароль для доступа к ftp
1 2 |
ip ftp username ftp_user ip ftp password 7 ftpPassw0rd |
Далее нужно создать файл — базу данных, с IP-адресами цисок и их удобными названиями, это можно делать вручную или же выгружать автоматически не важно, главное привести файл к следующему виду: IP_ADDRESS<—->NAME
Пример такого файла (имя файла cisco.list):
1 2 3 4 |
IP_ADDRESS<---->NAME 95.141.xx.xx cisco1 79.142.xx.xx cisco2 95.56.xx.xx cisco3 |
Далее создаем сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#!/bin/bash cisfile='./cisco.list' cissum=`cat $cisfile | wc -l` cisnum=2 year=`date +%Y` month=`date +%m` day=`date +%d` mkdir -p /home/user/CISCO_BACKUP_CONFIG/$year/$month/$day chmod -R 777 /home/user/CISCO_BACKUP_CONFIG while [ $cisnum -le $cissum ] do #sed sed -n $cisnum $cisfile cisip=`head -n $cisnum $cisfile | tail -n 1 | awk '{print $1}'` cisname=`head -n $cisnum $cisfile | tail -n 1 | awk '{print $2}'` (/usr/bin/expect -c " set timeout 20 spawn telnet $cisip expect \"Username:\" send \"cisco_user\r\" expect \"Password:\" send \"cisco_pass\r\" expect \"*>\" send \"enable\r\" expect \"Password:\" send \"cisco_pass_en\r\" expect \"#\" send \"copy running-config ftp://ip_ftp/CISCO_BACKUP_CONFIG/$year/$month/$day/$cisname-$cisip.config\r\" send \"\r\" send \"\r\" send \"\r\" expect \"#\" send \"quit\r\" send \"\r\" interact exit ") cisnum=$(($cisnum+1)) done |
И далее добавляем задание на запуск скрипта в crontab (каждый день в 6 утра):
1 |
00 06 * * * /usr/src/cisco_backup/backup.sh >/dev/null 2>&1 |
Смысл скрипта в том, что он лезет на кошку, копирует running-config на ftp и сохраняет его в каталоге /год/месяц/день/название_циски-IP.config