Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Od joeSledujte viac od autora:
O: Rád si pohrávam s čímkoľvek, niekedy sa to nakoniec podarí. Bavte sa pozerať na projekty, skúste niečo roztrhnúť a dajte mi vedieť, ako to pokračuje. na zdravie, -Joe Viac o joe »
Tento návod ukazuje skript, ktorý možno použiť na automatizáciu zálohovania brány firewall netscreen so systémom ScreenOS.
Krok 1: Požiadavky
Tento skript je napísaný v očakávaní a predpokladá, že máte zapnuté SSH na obrazovke netscreen a Linux. Ak ste nikdy nepoznali očakávanie, Oreilly má skvelú knihu „Exploring Expect“https://oreilly.com/catalog/9781565920903/
Krok 2: Premenné
Začneme nastavením niektorých premenných. Budete chcieť nastaviť premenné port/používateľské meno/heslo/netscreen/prompt tak, aby zodpovedali vášmu prostrediu. #!/usr/bin/expect#Očakávajte skript na zálohovanie konfigurácie brán firewall netscreen#Joe #Nastavte nejaký časový limit varsetu, nastavte „root“používateľa, nastavte heslo „heslo“, nastavte port „2022“nastavte netscreen „foo.bar.com“nastavte basedir "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format%Y-%m-%d] -config.txt "set mailto" [email protected] "set mailsubject" Chyba: netscreen zálohovanie zlyhalo [timestamp -format%Y-%m-%d] "set mailfail" "set prompt" foo->"
Krok 3: Pripojte sa
Ďalej v skripte sa pokúsime pripojiť. r "expect {" $ prompt "{send_user" Connected "}" Permission denied "{send_user" Neplatné heslo, ukončenie "set mailfail" Neplatné heslo, ukončenie "close} timeout {send_user" Žiadna výzva vrátená "set mailfail" Žiadna výzva vrátená "close}}}" Žiadna cesta k hostiteľovi "{send_user" Nedá sa pripojiť k $ netscreen / n "nastaviť mailfail" Nedá sa pripojiť k $ netscreen / n "}" Meno alebo služba nie je známe "{send_user" Nedá sa pripojiť $ netscreen / n "set mailfail" Nedá sa pripojiť k $ netscreen / n "} timeout {send_user" Timeout connying to $ netscreen "set mailfail" Timeout connying to $ netscreen "close}} if {$ mailfail! =" "} { exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Krok 4: Vypnite stránkovanie
Musíte vypnúť stránkovanie - alebo ďalšie výzvy na obrazovke siete. #Zakážte stránku konzoly „viac“výziev nastaviť „očakávajte {“$ prompt „{send_user“\ nPage Disabled / n „} predvolené {odoslať“ScreenOS nevyberal možnosť stránkovania. / N „Nastaviť mailfail“ScreenOS urobil okrem možnosti stránkovania. “zavrieť} časový limit {send_user "ScreenOS nevyberal okrem možnosti stránkovania / n" nastaviť mailfail "ScreenOS nevyberal okrem možnosti stránkovania." zavrieť}} ak {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Krok 5: Získajte konfiguráciu
Teraz dostaneme konfiguráciu. send_user "Konfigurácia sťahovania / n" log_file $ basedir/$ logsend "get config / r" expect {"$ prompt" {log_file send_user "\ nConfiguration Downloaded / n"} timeout {send_user "\ nChyba počas sťahovania konfigurácie." nastavte mailfail "Chyba počas sťahovania konfigurácie." }} closeif {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Krok 6: Skontrolujte, či je konfigurácia správnej veľkosti
Poznáme kontrolu, aby sme zistili, či je konfigurácia aspoň 1 kB. Nastavte veľkosť súboru [veľkosť súboru $ basedir/$ log], ak je {$ filesize <= 1024} {send_user "Konfigurácia Netscreen príliš malá, preskúmajte / n" nastaviť mailfail " Konfigurácia obrazovky Netscreen je príliš malá, preskúmajte / n "exec /bin /mail -s $ mailsubject $ mailto <<" $ mailfail "exit}
Krok 7: Čistenie
Poďme vykonať malé vyčistenie, aby sme odstránili konfigurácie staršie ako dva týždne. #Odstrániť konfiguráciu staršiu ako 2 týždne, vyhľadajte $ basedir -name '*config.txt*' -mtime +14
Krok 8: Všetci spolu
Teraz to dajte všetko dohromady. Je priložený ako textový súbor. V prípade akýchkoľvek zlyhaní bude odosielať e -maily. #!/usr/bin/expect#Očakávajte skript na zálohovanie konfigurácie brán firewall netscreen#Joe#Nastavte nejaký časový limit varsetu, nastavte „root“používateľa a nastavte heslo „heslo“nastavte port „2022“nastavte netscreen „foo.bar.com“nastavte basedir "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format%Y-%m-%d] -config.txt "set mailto" [email protected] "set mailsubject" Chyba: netscreen zálohovanie zlyhalo [timestamp -format%Y-%m-%d] "set mailfail" "set prompt" foo-> "send_user" NetScren Backup Script / n "send_user" Connecting to $ netscreen / n "spawn ssh $ user@$ netscreen -p $ port expect {"heslo:" {send "$ password / r" expect {"$ prompt" {send_user "Connected"} "Povolenie odmietnuté" {send_user "Neplatné heslo, ukončenie" set mailfail "Neplatné heslo, ukončenie "close} timeout {send_user" Žiadna výzva vrátená "set mailfail" Žiadna výzva vrátená "close}}}" Žiadna trasa k hostiteľovi "{send_user" Nedá sa pripojiť k $ netscreen / n "nastaviť mailfail" Nedá sa pripojiť k $ netscreen / n "}" Meno alebo služba nie sú známe "{send_user" Nedá sa pripojiť k $ netscreen / n "s a mailfail "Nedá sa pripojiť k $ netscreen / n"} timeout {send_user "Timeout conconnecting to $ netscreen" set mailfail "Timeout connying to $ netscreen" close}} if {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto <<< n "} predvolené {odoslať" ScreenOS nevyberal možnosť stránkovania. / n "nastaviť mailfail" ScreenOS nevyberal možnosť stránkovania. " zavrieť} časový limit {send_user "ScreenOS nevyberal okrem možnosti stránkovania / n" nastaviť mailfail "ScreenOS nevyberal okrem možnosti stránkovania." close}} if {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "Konfigurácia sťahovania / n" log_file $ basedir/$ logsend "get config / r "expect {" $ prompt "{log_file send_user" / nConfiguration Downloaded / n "} timeout {send_user" / nChyba počas sťahovania konfigurácie. " nastavte mailfail "Chyba počas sťahovania konfigurácie." }} closeif {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} nastaviť veľkosť súboru [veľkosť súboru $ basedir/$ log], ak {$ veľkosť súboru <= 1024} {send_user "Konfigurácia Netscreen je príliš malá, prosím skúmajte / n" nastavte mailfail "Konfigurácia Netscreen je príliš malá, preskúmajte / n" exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}#Odstrániť konfiguráciu starší ako 2 týždne vyhľadajte $ basedir -name '*config.txt*' -mtime +14