Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta instrukcja pokaże skrypt, który może być użyty do zautomatyzowania tworzenia kopii zapasowych przełącznika/routera/zapory sieciowej odlewni.
Krok 1: Wymagania
Ten skrypt używa oczekiwania do automatyzacji tworzenia kopii zapasowych i działa w systemie Linux. Jeśli nigdy się nie spodziewałeś, Oreilly ma świetną książkę „Exploring Expect”
Krok 2: Zmienne
Ustaw kilka zmiennych. Będziesz musiał zmienić nazwę użytkownika, hasło, odlewnicze i podpowiedzi. #!/usr/bin/expect#Oczekuj skryptu do tworzenia kopii zapasowej konfiguracji urządzeń odlewniczych#Joe McManus#Ustaw limit czasu varsset 60ustaw użytkownika "telnet"ustaw hasło "hasło"ustaw odlewnię "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 "Błąd: odlewnia kopia zapasowa nie powiodła się [timestamp -format %Y-%m-%d] "ustaw błąd poczty ""ustaw monit "telnet@FLS648"
Krok 3: Połącz
Ta część skryptu próbuje połączyć się z foundry.send_user "Foundry Backup Script\n"send_user "Łączenie z $foundry\n"spawn telnet $foundry expect { "Hasło:" { send "$password\r" expect { " $prompt" { send_user "Połączono" } "niepowodzenie" { send_user "Nieprawidłowe hasło, wychodzenie" set mailfail "Nieprawidłowe hasło, wychodzenie" close } timeout { send_user "Nie zwrócono monitu" set mailfail "Nie zwrócono monitu" close } } } " Brak trasy do hosta" { send_user "Nie można połączyć się z $foundry\n" set mailfail "Nie można połączyć się z $foundry\n" } "Nieznana nazwa lub usługa" { send_user "Nie można połączyć się z $foundry\n" set mailfail "Nie można połączyć się z $foundry\n" } timeout{ send_user "Upłynął limit czasu połączenia z $foundry" set mailfail "Upłynął limit czasu połączenia z $foundry" close } }if { $mailfail != "" } { exec /bin/mail - s$mailsubject $mailto << "$mailfail" wyjście}
Krok 4: Wyłącz stronicowanie
Wyłącz monit „więcej”, abyśmy mogli pobrać konfigurację. send "enable\r"expect { "$prompt Switch#" { send_user "Włączone" } default { send_user "Włączenie nie powiodło się" set mailfail "ScreenOS nie wyjął opcji stronicowania." zamknij }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}wyślij "pomiń wyświetlanie strony\r"expect { "Wyłącz tryb wyświetlania strony* $prompt" { send_user "\nStronicowanie wyłączone\n" } default { send "ScreenOS nie wyjął opcji stronicowania.\n" set mailfail "ScreenOS nie wyjął opcji stronicowania." close } timeout { send_user "ScreenOS nie wyjął opcji stronicowania\n" set mailfail "ScreenOS nie wyjął opcji stronicowania." zamknij }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}
Krok 5: Pobierz konfigurację
Ta część skryptu pobiera konfigurację. send_user "Pobieranie konfiguracji\n"log_file $basedir/$logsend "show running\r"expect { "$prompt" { log_file send_user "\nKonfiguracja pobrana\n" } limit czasu { send_user "\nBłąd podczas pobierania konfiguracji." set mailfail "Błąd podczas pobierania konfiguracji." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}
Krok 6: Sprawdź rozmiar pliku
Sprawdź rozmiar pliku. set filesize [rozmiar pliku $basedir/$log]if { $filesize <= 512 } { send_user "Konfiguracja Netscreen jest za mała, sprawdź\n" set mailfail "Konfiguracja Netscreen jest za mała, sprawdź\n" exec /bin /mail -s$mailsubject $mailto << "$mailfail" wyjście}
Krok 7: Oczyszczanie
Wyczyść konfigurację starszą niż dwa tygodnie.#Usuń konfigurację starszą niż 2 tygodnieexec find $basedir -name '*config.txt*' -mtime +14
Krok 8: Złóż wszystko razem
Poskładać wszystko do kupy. Skrypt jest załączony, w przypadku niepowodzeń wyśle e-mailem.