Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
Cette instructable montrera un script qui peut être utilisé pour automatiser les sauvegardes d'un commutateur/routeur/pare-feu de réseaux de fonderie.
Étape 1: Exigences
Ce script utilise expect pour automatiser les sauvegardes et s'exécute sur un système Linux. Si vous n'avez jamais consulté attendez, Oreilly a un excellent livre "Exploring Expect"
Étape 2: Variables
Configurez certaines variables. Vous devrez modifier le nom d'utilisateur, le mot de passe, la fonderie et les variables d'invite. #!/usr/bin/expect#Script attendu pour sauvegarder la configuration des périphériques de fonderie#Joe McManus#Définir un délai d'attente varsset 60set user "telnet"set password "password"set foundry "foundry.foo.bar.com"set basedir "/ mnt/netapp/backups/foundry.foo.bar.com"set log "[timestamp -format %Y-%m-%d]-config.txt"set mailto "[email protected]"set mailsubject "Erreur: fonderie la sauvegarde a échoué [timestamp -format %Y-%m-%d] "set mailfail ""set prompt "telnet@FLS648"
Étape 3: Connectez-vous
Cette partie du script tente de se connecter à la fonderie.send_user "Foundry Backup Script\n"send_user "Connexion à $foundry\n"spawn telnet $foundry expect { "Mot de passe:" { send "$password\r" expect { " $prompt" { send_user "Connected" } "failure" { send_user "Mot de passe invalide, en cours" set mailfail "Mot de passe invalide, en cours" close } timeout { send_user "Aucune invite renvoyée" set mailfail "Aucune invite renvoyée" close } } } " Aucune route vers l'hôte" { send_user "Impossible de se connecter à $foundry\n" set mailfail "Impossible de se connecter à $foundry\n" } "Nom ou service inconnu" { send_user "Impossible de se connecter à $foundry\n" set mailfail "Impossible de se connecter à $foundry\n" } timeout{ send_user "Timeout de connexion à $foundry" set mailfail "Timeout de connexion à $foundry" close } }if { $mailfail != "" } { exec /bin/mail - s$mailsubject $mailto << "$mailfail" exit}
Étape 4: Désactivez la pagination
Désactivez l'invite "plus" afin que nous puissions télécharger la configuration. send "enable\r"expect { "$prompt Switch#" { send_user "Enabled" } default { send_user "Enable failed" set mailfail "ScreenOS n'a pas excepté l'option de pagination." close }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}send "skip-page-display\r"expect { "Désactiver le mode d'affichage de la page* $prompt" { send_user "\nPaging désactivé\n" } default { send "ScreenOS n'a pas excepté l'option de pagination.\n" set mailfail "ScreenOS n'a pas excepté l'option de pagination." close } timeout { send_user "ScreenOS n'a pas excepté l'option de pagination\n" set mailfail "ScreenOS n'a pas excepté l'option de pagination." close }}if { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}
Étape 5: Obtenez la configuration
Cette partie du script obtient la configuration. send_user "Téléchargement de la configuration\n"fichier_journal $basedir/$logsend "show running\r"expect { "$prompt" { log_file send_user "\nConfiguration téléchargée\n" } timeout { send_user "\nErreur lors du téléchargement de la configuration." set mailfail "Erreur lors du téléchargement de la configuration." }}closeif { $mailfail != "" } { exec /bin/mail -s$mailsubject $mailto << "$mailfail" exit}
Étape 6: Vérifiez la taille du fichier
Vérifiez la taille du fichier. set filesize [taille du fichier $basedir/$log]if { $filesize <= 512 } { send_user "La configuration de l'écran est trop petite, veuillez enquêter\n" set mailfail "La configuration de l'écran est trop petite, veuillez enquêter\n" exec /bin /mail -s$mailsubject $mailto << "$mailfail" exit}
Étape 7: nettoyage
Nettoyer les configurations de plus de deux semaines.#Remove config plus de 2 semainesexec find $basedir -name '*config.txt*' -mtime +14
Étape 8: assemblez le tout
Mets le tout ensemble. Le script est joint, il sera envoyé par e-mail en cas d'échec.