Slik sikkerhetskopierer du en Netscreen -brannmur: 8 trinn
Slik sikkerhetskopierer du en Netscreen -brannmur: 8 trinn
Anonim

Av joeFollow More av forfatteren:

Omtrent: Jeg liker å pusle med omtrent alt, noen ganger ordner det seg til slutt. Ha det gøy å se på prosjektene, prøv å rive noe åpent og gi meg beskjed om hvordan det går. hei, -Joe Mer om joe »

Denne instruksen viser et skript som kan brukes til å automatisere sikkerhetskopier av en brannmur på nettskjermen som kjører ScreenOS.

Trinn 1: Krav

Dette skriptet er skrevet i forventet og forutsetter at du har SSH slått på på nettskjermen og et Linux -miljø. Hvis du aldri har sjekket ut forvent, har Oreilly en flott bok "Exploring Expect"

Trinn 2: Variabler

Vi starter med å sette noen variabler. Du vil angi port/brukernavn/passord/netscreen/ledetekniske variabler som passer til miljøet ditt. #!/usr/bin/expect#Forvent skript for å sikkerhetskopiere konfigurasjon av nettverksbrannmurer#Joe #Sett noen varsset timeout 60set bruker "root" sett passord "passord" sett port "2022" sett netscreen "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com"set logg" [tidsstempel -format%Y-%m-%d] -konfig.txt "sett mailto" [email protected] "sett mailsubject" Feil: nettskjerm sikkerhetskopiering mislyktes [tidsstempel -format%Y-%m-%d] "angi mailfail" "angi spørsmål" foo->"

Trinn 3: Koble til

Neste i skriptet vil vi prøve å koble.send_user "NetScren Backup Script / n" send_user "Koble til $ netscreen / n" spawn ssh $ user@$ netscreen -p $ port forventer {"passord:" {send "$ passord / r "expect {" $ prompt "{send_user" Connected "}" Tillatelse nektet "{send_user" Ugyldig passord, avslutter "set mailfail" Ugyldig passord, avslutter "close} timeout {send_user" Ingen melding returneres "set mailfail" Ingen melding returneres "close}}}" Ingen rute til vert "{send_user" Kan ikke koble til $ netscreen / n "set mailfail" Kan ikke koble til $ netscreen / n "}" Navn eller tjeneste ikke kjent "{send_user" Kan ikke koble til $ netscreen / n "set mailfail" Kan ikke koble til $ netscreen / n "} timeout {send_user" Timeout kobler til $ netscreen "set mailfail" Timeout kobler til $ netscreen "close}} hvis {$ mailfail! =" "} { exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}

Trinn 4: Slå av personsøk

Du må slå av personsøking - eller mer spør på nettskjermen. #Deaktiver "mer" promptsend "set -konsollsiden 0 / r" forventer {"$ prompt" {send_user "\ nPaging deaktivert / n"} standard {send "ScreenOS utelukket ikke personsøkingsalternativ. / N" set mailfail "ScreenOS gjorde ikke bortsett fra personsøkeralternativ. " close} timeout {send_user "ScreenOS unntatt personsøkingsalternativ / n" angi mailfail "ScreenOS unntatt personsøkingsalternativ." close}} if {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}

Trinn 5: Få konfig

Vi får nå konfigurasjonen. send_user "Last ned konfigurasjon / n" log_file $ basedir/$ logsend "get config / r" forventer {"$ prompt" {log_file send_user "\ nKonfigurasjon lastet ned / n"} timeout {send_user "\ nFeil under nedlasting av konfigurasjon." set mailfail "Feil under nedlasting av konfigurasjon." }} closeif {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}

Trinn 6: Sjekk om konfigurasjonen har riktig størrelse

Vi vet at sjekk om konfigurasjonen er minst 1k.set filstørrelse [filstørrelse $ basedir/$ log] hvis {$ filesize <= 1024} {send_user "Netscreen config er for liten, undersøk / n" set mailfail " Netscreen -konfigurasjonen er for liten. Undersøk / n "exec /bin /mail -s $ mailsubject $ mailto <<" $ mailfail "exit}

Trinn 7: Opprydding

La oss kjøre litt opprydding for å fjerne konfiger eldre enn to uker. #Remove config eldre enn 2 ukersexec finn $ basedir -name '*config.txt*' -mtime +14

Trinn 8: Alt sammen

Sett alt sammen nå. Den er vedlagt som en tekstfil. Den sender e -post om eventuelle feil. #!/usr/bin/expect#Forvent skriptet å sikkerhetskopiere konfigurasjon av nettverksbrannmurer#Joe#Angi noen varsset timeout 60set bruker "root" sett passord "passord" sett port "2022" sett netscreen "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com"set logg" [tidsstempel -format%Y-%m-%d] -konfig.txt "sett mailto" [email protected] "sett mailsubject" Feil: nettskjerm backup mislyktes [tidsstempel -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 forventer {"password:" {send "$ password / r" expect {"$ prompt" {send_user "Connected"} "Tillatelse nektet" {send_user "Ugyldig passord, avslutter" set mailfail "Ugyldig passord, går ut "close} timeout {send_user" Ingen melding returnert "angi mailfail" Ingen ledetekst returneres "close}}}" Ingen rute til vert "{send_user" Kan ikke koble til $ netscreen / n "set mailfail" Kan ikke koble til $ netscreen / n "}" Navn eller tjeneste ikke kjent "{send_user" Kan ikke koble til $ netscreen / n "s et mailfail "Kan ikke koble til $ netscreen / n"} timeout {send_user "Timeout kobler til $ netscreen" sett mailfail "Timeout kobler til $ netscreen" close}} hvis {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}#Nå som det er over, fortsett#Deaktiver "mer" promptsend "sett konsoll side 0 / r" forventer {"$ prompt" {send_user "\ nPaging deaktivert / n "} standard {send" ScreenOS unntatt personsøkingsalternativ. / n "angi mailfail" ScreenOS unntatt alternativet for personsøk. " close} timeout {send_user "ScreenOS unntatt personsøkingsalternativ / n" angi mailfail "ScreenOS unntatt personsøkingsalternativ." close}} if {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "Nedlasting av konfigurasjon / n" log_file $ basedir/$ logsend "get config / r "forvent {" $ prompt "{log_file send_user" / nKonfigurasjon lastet ned / n "} timeout {send_user" / nFeil under nedlasting av konfigurasjon. " set mailfail "Feil under nedlasting av konfigurasjon." }} closeif {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} angi filstørrelse [filstørrelse $ basedir/$ log] hvis {$ filesize <= 1024} {send_user "Netscreen config er for liten, undersøk / n" set mailfail "Netscreen config er for liten, undersøk / n" exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Remove config eldre enn 2 uker seks finner $ basedir -name '*config.txt*' -mtime +14