Hur till backningen Netscreen brandvägg (8 / 8 steg)
Steg 8: Alla tillsammans
Lägg ihop allt nu. Den är ansluten som en textfil. Det kommer att skicka e-post på alla fel.#! / usr/bin/förvänta
#Expect skript till backup config av netscreen brandväggar
#Joe
#Set några vars
ställa in timeout 60
ställa in användare "root"
Ange lösenord "lösenord"
ställa in port "2022"
ställa in netscreen "foo.bar.com"
ställa in basedir "/ mnt/netapp/backups/foo.bar.com"
Ställ in logg "[timestamp-format % Y-%m-%d]-config.txt"
ställa in mailto "joe
ställa mailsubject "fel: netscreen säkerhetskopieringen misslyckades [timestamp-format %Y-%m-%d]"
ställa mailfail ""
Ange prompt "foo ->"
send_user "NetScren Backup Script\n"
send_user "Ansluta till $netscreen\n"
leka ssh $user -p$ port
förvänta sig {
"lösenord:" {
Skicka "$password\r"
förvänta sig {
{"$prompt"
send_user "Ansluten"
} {"Åtkomst nekad"
send_user "Ogiltigt lösenord, spännande"
ställa mailfail "Ogiltigt lösenord, spännande"
Stäng
} {timeout
send_user "nej snabb återvände"
Ställ in mailfail "efterfrågas inte tillbaka"
Stäng
}
}
} {"Ingen väg till värd"
send_user "Kan inte ansluta till $netscreen\n"
ställa mailfail "Kan inte ansluta till $netscreen\n"
} {"Namn eller tjänst inte känd"
send_user "Kan inte ansluta till $netscreen\n"
ställa mailfail "Kan inte ansluta till $netscreen\n"
} {timeout
send_user "Timeout conncting till $netscreen"
ställa mailfail "Timeout conncting till $netscreen"
Stäng
}
}
om {$mailfail! = ""} {
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
Exit
}
#Now att det är över, fortsätter
#Disable "mer" snabb
Skicka "set konsolsidan 0\r"
förvänta sig {
{"$prompt"
send_user "\nPaging Disabled\n"
} standard {
Skicka "ScreenOS inte utom personsökning alternativet. \n"
Ställ in mailfail "ScreenOS inte förutom personsökning alternativet."
Stäng
}
{timeout
send_user "ScreenOS inte utom personsökning option\n"
Ställ in mailfail "ScreenOS inte förutom personsökning alternativet."
Stäng
}
}
om {$mailfail! = ""} {
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
Exit
}
send_user "Hämta Configuration\n"
loggfil $basedir / $log
Skicka "get config\r"
förvänta sig {
{"$prompt"
loggfil
send_user "\nConfiguration Downloaded\n"
}
{timeout
send_user "\nError under konfiguration download."
ställa mailfail "Fel under konfiguration download."
}
}
Stäng
om {$mailfail! = ""} {
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
Exit
}
ställa in filesize [filstorlek $basedir / $log]
om {$filesize < = 1024} {
send_user "Netscreen config är för liten, du investigate\n"
ställa mailfail "Netscreen config är för liten, du investigate\n"
exec/bin/mail -s$ mailsubject $mailto << "
$mailfail"
Exit
}
#Remove config äldre än 2 veckor
exec hitta $basedir-namn ' * config.txt*' - mtime + 14