Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Denna instruerbara kommer att visa ett skript som kan användas för att automatisera säkerhetskopior av en switch/router/brandvägg för gjuterier.
Steg 1: Krav
Detta skript använder förväntar sig att automatisera säkerhetskopiorna och körs på ett Linux -system. Om du aldrig har checkat ut förvänta dig, har Oreilly en bra bok "Exploring Expect"
Steg 2: Variabler
Ställ in några variabler. Du måste ändra användarnamn, lösenord, gjuteri och promptvariabler. #!/usr/bin/förvänta dig#Förvänta skriptet att säkerhetskopiera konfiguration av gjuterier#Joe McManus#Ställ in en varsset timeout 60set användare "telnet" ställ in lösenord "lösenord" ställ in gjuteri "foundry.foo.bar.com" set basedir "/ mnt/netapp/backups/foundry.foo.bar.com "set log" [tidsstämpel -format%Y-%m-%d] -config.txt "set mailto" [email protected] "set mailsubject" Fel: gjuteri säkerhetskopiering misslyckades [tidsstämpel -format%Y-%m-%d] "ställ in mailfail" "ställ in prompt" telnet@FLS648"
Steg 3: Anslut
Denna del av skriptet försöker ansluta till foundry.send_user "Foundry Backup Script / n" send_user "Ansluter till $ gjuteri / n" spawn telnet $ gjuteri förväntar {"Lösenord:" {skicka "$ lösenord / r" förväntar {" $ prompt "{send_user" Connected "}" failure "{send_user" Ogiltigt lösenord, avslutar "set mailfail" Ogiltigt lösenord, avslutar "close} timeout {send_user" Ingen prompt returneras "set mailfail" Ingen prompt returneras "close}}}" Ingen väg till värd "{send_user" Det går inte att ansluta till $ foundry / n "set mailfail" Kan inte ansluta till $ foundry / n "}" Namn eller tjänst inte känd "{send_user" Det går inte att ansluta till $ foundry / n "set mailfail "Kan inte ansluta till $ foundry / n"} timeout {send_user "Timeout som ansluter till $ foundry" set mailfail "Timeout ansluter till $ foundry" close}} om {$ mailfail! = ""} {exec /bin /mail - s $ mailsubject $ mailto << "$ mailfail" exit}
Steg 4: Inaktivera personsökning
Inaktivera "mer" -prompten så att vi kan ladda ner konfigurationen. skicka "enable / r" förvänta dig {"$ prompt Switch#" {send_user "Enabled"} standard {send_user "Enable failed" set mailfail "ScreenOS undantog personsökningsalternativ." close}} om {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit} skicka "hoppa-sida-display / r" förvänta dig "" Inaktivera sidvisningsläge* $ prompt "{send_user" / nPaging Disabled / n "} standard {send" ScreenOS gjorde inte undantag för personsökningsalternativ. / n "set mailfail" ScreenOS gjorde inte undantag för personsökningsalternativ. " close} timeout {send_user "ScreenOS gjorde inte utom personsökningsalternativ / n" ställde in mailfail "ScreenOS gjorde inte undantag för personsökningsalternativ." close}} if {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Steg 5: Hämta konfig
Denna del av skriptet får konfigurationen. send_user "Hämtar konfiguration / n" log_file $ basedir/$ logsend "show running / r" förvänta sig {"$ prompt" {log_file send_user "\ nKonfiguration nedladdad / n"} timeout {send_user "\ nFel under nedladdning av konfiguration." set mailfail "Fel vid konfigurationsnedladdning." }} closeif {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Steg 6: Kontrollera filstorlek
Kontrollera filstorleken. ställ in filstorlek [filstorlek $ basedir /$ log] om {$ filesize <= 512} {send_user "Netscreen config är för liten, undersök / n" set mailfail "Netscreen config är för liten, undersök / n" exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Steg 7: Rengöring
Rensa upp konfigurationer äldre än två veckor.#Ta bort konfiguration äldre än 2 veckorsexec hitta $ basedir -name '*config.txt*' -mtime +14
Steg 8: Sätt ihop allt
Lägg samman allt. Skriptet är bifogat, det kommer att skicka e -post om misslyckanden.