Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Seuraa lisää tekijältä:
Tietoja: Tykkään hoitaa melkein mitä tahansa, joskus se onnistuu lopulta. Pidä hauskaa katsomassa projekteja, yritä repiä jotain auki ja kerro minulle kuinka se menee. terveisin, -Joe Lisätietoja Joesta »
Tässä ohjeessa esitetään komentosarja, jota voidaan käyttää ScreenOS -järjestelmää käyttävän verkkoseinäpalomuurin varmuuskopioinnin automatisointiin.
Vaihe 1: Vaatimukset
Tämä skripti on kirjoitettu odotetusti ja olettaa, että olet ottanut SSH: n käyttöön verkko- ja linux -ympäristössäsi. Jos et ole koskaan tutustunut odotuksiin, Oreillyllä on loistava kirja "Exploring Expect"
Vaihe 2: Muuttujat
Aloitamme joidenkin muuttujien asettamisesta. Haluat asettaa portin/käyttäjänimen/salasanan/netscreen/kehotteen muuttujat vastaamaan ympäristöäsi. #!/usr/bin/expect#Odota komentosarjaa verkon näytön palomuurien varmuuskopiointiin#Joe #Set some Varsset timeout 60set user "root" set password "password" set port "2022" set netscreen "foo.bar.com" set basedir "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format%Y-%m-%d] -config.txt "set mailto" [email protected] "set mailsubject" Virhe: netscreen varmuuskopiointi epäonnistui [aikaleima -muoto%Y-%m-%d] "set mailfail" "set prompt" foo->"
Vaihe 3: Yhdistä
Seuraavaksi skriptissä yritämme yhdistää. r "odottaa {" $ prompt "{send_user" Connected "}" Lupa evätty "{send_user" Virheellinen salasana, poistuminen "set mailfail" Virheellinen salasana, poistuminen "close} aikakatkaisusta {send_user" Ei kehotusta palautettu "aseta mailfail" Ei kehotusta palautettu "close}}}" Ei reittiä isännöidä "{send_user" Ei voi muodostaa yhteyttä $ netscreen / n "set mailfail" Ei voi muodostaa yhteyttä $ netscreen / n "}" Nimi tai palvelu ei tiedossa "{send_user" Ei voi muodostaa yhteyttä $ netscreen / n "set mailfail" Ei voi muodostaa yhteyttä $ netscreen / n "} timeout {send_user" Timeout conncting to $ netscreen "set mailfail" Timeout conncting to $ netscreen "close}} jos {$ mailfail! =" "} { exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Vaihe 4: Poista sivutus käytöstä
Sinun on poistettava sivutus käytöstä - tai enemmän kehotetta verkossa. #Käytä "lisää" kehotteita "asettaa konsolisivu 0 / r" odota {"$ prompt" {send_user "\ nSivutus poistettu käytöstä / n"} oletus {lähetä "ScreenOS ei tehnyt muuta kuin sivutusvaihtoehto. / N" aseta mailfail "ScreenOS teki paitsi hakuvaihtoehto. " close} aikakatkaisu {send_user "ScreenOS ei tehnyt muuta kuin hakuvaihtoehto / n" aseta mailfail "ScreenOS ei tehnyt muuta kuin hakuvaihtoehto." sulje}} jos {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Vaihe 5: Hanki Config
Saamme nyt kokoonpanon. send_user "Ladataan asetuksia / n" log_file $ basedir/$ logsend "get config / r" odottaa {"$ prompt" {log_file send_user "\ nMääritykset ladattu / n"} aikakatkaisu {send_user "\ nVirhe määritysten lataamisen aikana." aseta mailfail "Virhe kokoonpanon lataamisen aikana". }} closeif {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit}
Vaihe 6: Tarkista, onko kokoonpano oikean kokoinen
Tiedämme tarkistaaksemme, onko kokoonpano vähintään 1k.set tiedostokoko [tiedoston koko $ basedir/$ log], jos {$ filesize <= 1024} {send_user "Netscreen -määritys on liian pieni, tutki / n" set mailfail " Netscreen -määritykset ovat liian pienet, tutki / n "exec /bin /mail -s $ mailsubject $ mailto <<" $ mailfail "exit}
Vaihe 7: Puhdistus
Suorita pieni puhdistus, jotta poistat yli kaksi viikkoa vanhat kokoonpanot. #Poista kokoonpano, joka on vanhempi kuin 2 weeksexec, etsi $ basedir -name '*config.txt*' -mtime +14
Vaihe 8: Kaikki yhdessä
Laita kaikki nyt yhteen. Se on liitetty tekstitiedostona. Se lähettää sähköpostiviestejä mahdollisista epäonnistumisista. #!/usr/bin/expect#Odota komentosarjaa varmuuskopioimaan verkon näytön palomuurit "/mnt/netapp/backups/foo.bar.com"set log" [timestamp -format%Y-%m-%d] -config.txt "set mailto" [email protected] "set mailsubject" Virhe: netscreen varmuuskopiointi epäonnistui [aikaleima -muoto%Y-%m-%d] "aseta mailfail" "aseta kehote" foo-> "send_user" NetScren-varmuuskopiointiohjelma / n "send_user" Yhdistäminen $ netscreen / n "spawn ssh $ user@$ netscreen -p $ port wait {"password:" {send "$ password / r" wait {"$ prompt" {send_user "Connected"} "Käyttöoikeus evätty" {send_user "Virheellinen salasana, poistuu" set mailfail "Virheellinen salasana, poistuu "close} aikakatkaisu {send_user" Ei kehotusta palautettu "aseta mailfail" Ei kehotusta palautettu "close}}}" Ei reittiä isäntään "{send_user" Ei voi muodostaa yhteyttä $ netscreen / n "aseta mailfail" Ei voi muodostaa yhteyttä $ netscreen / n "}" Nimi tai palvelu ei tiedossa "{send_user" Ei voi muodostaa yhteyttä $ netscreen / n "s et mailfail "Ei voi muodostaa yhteyttä $ netscreen / n"} timeout {send_user "Timeout conncting to $ netscreen" aseta mailfail "Timeout conncting to $ netscreen" close}} jos {$ mailfail! = ""} {exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Nyt kun tämä on ohi, jatka#Poista käytöstä "lisää" kehote "asettaa konsolisivu 0 / r" odota {"$ prompt" {send_user "\ nVanhennus poistettu käytöstä / n "} oletus {lähetä" ScreenOS ei tehnyt muuta kuin hakuvaihtoehtoa. / n "set mailfail" ScreenOS ei tehnyt muuta kuin hakuvaihtoehtoa. " close} aikakatkaisu {send_user "ScreenOS ei tehnyt muuta kuin hakuvaihtoehto / n" aseta mailfail "ScreenOS ei tehnyt muuta kuin hakuvaihtoehto." sulje}} if {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} send_user "Ladataan asetuksia / n" log_file $ basedir/$ logsend "get config / r "odottaa {" $ prompt "{log_file send_user" / nMääritykset ladattu / n "} aikakatkaisu {send_user" / nVirhe kokoonpanon lataamisen aikana. " aseta mailfail "Virhe kokoonpanon lataamisen aikana". }} closeif {$ mailfail! = ""} {exec/bin/mail -s $ mailsubject $ mailto << "$ mailfail" exit} aseta tiedoston koko [tiedoston koko $ basedir/$ log], jos {$ filesize <= 1024} {send_user "Netscreen -määritys on liian pieni, tutkikaa / n" set mailfail "Netscreen -määritys on liian pieni, tutkikaa / n" exec /bin /mail -s $ mailsubject $ mailto << "$ mailfail" exit} #Remove config vanhemmat kuin 2 weeksexec löytää $ basedir -name '*config.txt*' -mtime +14