Cisco: Автосохранение конфигурации по rcp
Маленький скриптик для сохранения конфигурации маршрутизаторов по rcp. До этого пользовался , однако с 800 серии снимать не получилось. Руки давно чесались исправить ситуацию, но все времени не хватало.
Скрип запускается еженощно по cron и сохраняет полученные конфигурационные файлы в RCS. Результатом работы является письмо с diff-ами конфигов.
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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 | #!/bin/sh # Copyright (c) Roman Shramko # The script loads configuration from cisco routers and puts it in a cvs tree # the list of routers ROUTERS="routers.cfg" # please specify a secure path for storing configs STORAGE="/home/srn/copycfg" LASTCONF="$STORAGE/last" cd $STORAGE # check config if [ ! -f "$ROUTERS" ] ; then echo "Can't find $ROUTERS" fi # check the RCS dir if [ ! -d "RCS" ] ; then mkdir "RCS"ip rcmd rcp-enable ip rcmd rsh-enable ip rcmd remote-host admin 10.100.0.66 srn enable ip rcmd remote-host admin 10.100.102.106 srn enable fi while read router do if [ -f "$router.conf" ] ; then rm -f "$router.conf" fi if [ -z "$router" ] ; then continue fi # check the availability of the $router # ping it and check the result code ping's returned ping -c 3 -o $router 2>&1 > /dev/null if [ ! $? -eq 0 ] ; then # ping's failed echo "No responce from $router" continue fi # create a tmp file TMPF=`mktemp conf.XXXXXX` # copy a config via the rcp protocol rcp "admin@$router:running-config" "$TMPF" if [ ! -s "$TMPF" ] ; then # $TMPF is empty continue fi # get the line with the hostname of the router host=`grep hostname $TMPF | head -1` # delete the word 'hostname' host=${host#hostname } # remove from the config the line with "ntp clock-period" grep -v 'ntp clock-period' $TMPF > "$host.conf" rm -f $TMPF # create and initialize a rcs file if it had not created if [ ! -f "RCS/$host.conf,v" ] ; then rcs -q -i -t-"base version" "$host.conf" ci -q -m'-' -l "$host.conf" fi # create a diff file DIFF=`rcsdiff -qu "$host.conf"` # if we have a difference if [ -n "$DIFF" ] ; then echo "*********************************" echo echo "The $host's ($router) config was changed:" echo echo "$DIFF" echo echo "*********************************" # commit changes ci -q -m'-' -l "$host.conf" fi mv "$host.conf" $LASTCONF done < "$ROUTERS" #EOF |
Файл roters.conf — это простой текстовый файл с перечнем адресов маршрутизаторов в колонку:
10.10.23.130 10.10.30.130 10.10.33.130 10.10.34.130 10.10.37.130 10.10.38.130 10.10.39.130
RCP и RSH включаются на маршрутизаторе следующим образом:
ip rcmd rcp-enable ip rcmd rsh-enable ip rcmd remote-host local_username 10.10.10.106 remote_username enable
Остается только добавить запуск скрипта в cron.
Популярность: 6%
Похожие заметки
Автозагрузка конфигурации PFАрхивация конфигурации средствами Cisco IOS
Как мониторить изменения конфигурации Cisco средствами IOS
Вывод некоторых команд Cisco IOS
Cisco: страховка от неприятностей
Roman Shramko