Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом руководстве будет показан сценарий, который можно использовать для автоматизации резервного копирования сетевого коммутатора / маршрутизатора / межсетевого экрана.
Шаг 1. Требования
Этот сценарий использует ожидание для автоматизации резервного копирования и запускается в системе Linux. Если вы никогда не проверяли, ожидайте, у Oreilly есть отличная книга «Exploring Expect»
Шаг 2: переменные
Установите некоторые переменные. Вам нужно будет изменить имя пользователя, пароль, переменные литейной и подсказки. #! / usr / bin / expect # Ожидаемый сценарий для резервного копирования конфигурации литейных устройств # Джо МакМанус # Установка некоторого тайм-аута varsset 60set user "telnet" set password "password" set foundry "foundry.foo.bar.com" set basedir "/ mnt / netapp / backups / foundry.foo.bar.com "set log" [timestamp -format% Y-% m-% d] -config.txt "set mailto" [email protected] "set mailsubject" Ошибка: Foundry сбой резервного копирования [timestamp -format% Y-% m-% d] "set mailfail" "set prompt" telnet @ FLS648"
Шаг 3. Подключите
Эта часть скрипта пытается подключиться к foundry.send_user "Foundry Backup Script / n" send_user "Подключение к $ foundry / n" spawn telnet $ foundry expect {"Password:" {send "$ password / r" expect {" $ prompt "{send_user" Connected "}" failure "{send_user" Неверный пароль, выход из "set mailfail" Недействительный пароль, выход из "close} timeout {send_user" Запрос не возвращен "set mailfail" Запрос не возвращен "close}}}" Нет маршрута к хосту "{send_user" Невозможно подключиться к $ foundry / n "set mailfail" Невозможно подключиться к $ foundry / n "}" Имя или служба неизвестны "{send_user" Невозможно подключиться к $ foundry / n "установить mailfail "Невозможно подключиться к $ foundry / n"} timeout {send_user "Timeout conncting to $ foundry" set mailfail "Timeout conncting to $ foundry" close}} if {$ mailfail! = ""} {exec / bin / mail - s $ mailsubject $ mailto << "$ mailfail" exit}
Шаг 4. Отключите пейджинг
Отключите запрос «Дополнительно», чтобы мы могли загрузить конфигурацию. send "enable / r" expect {"$ prompt Switch #" {send_user "Enabled"} default {send_user "Enable failed" set mailfail "ScreenOS не исключил опцию разбиения по страницам." close}} if {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit} send "skip-page-display / r" expect {"Отключить режим отображения страницы * $ prompt "{send_user" / nPaging Disabled / n "} default {send" ScreenOS не исключал опцию paging. / n "set mailfail" ScreenOS не исключал опцию paging. " close} timeout {send_user "ScreenOS не исключал опцию разбиения по страницам / n" устанавливал ошибку почты "ScreenOS не исключал опцию разбиения по страницам." close}} if {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Шаг 5: Получите конфигурацию
Эта часть скрипта получает конфигурацию. send_user "Загрузка конфигурации / n" log_file $ basedir / $ logsend "show running / r" expect {"$ prompt" {log_file send_user "\ nConfiguration Downloaded / n"} timeout {send_user "\ nОшибка во время загрузки конфигурации". установить mailfail «Ошибка при загрузке конфигурации». }} closeif {$ mailfail! = ""} {exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Шаг 6: проверьте размер файла
Проверьте размер файла. установите размер файла [размер файла $ basedir / $ log], если {$ Size <= 512} {send_user "Конфигурация Netscreen слишком мала, проверьте / n" set mailfail "Конфигурация Netscreen слишком мала, проверьте / n" exec / bin / mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Шаг 7: очистка
Очистить конфигурации старше двух недель. # Удалить конфигурацию старше двух недельsexec find $ basedir -name '* config.txt *' -mtime +14
Шаг 8: соберите все вместе
Положил все это вместе. Скрипт прилагается, при сбоях пришлет письмо.