Bonjour à tous et surtout merci de votre indulgence ainsi que de votre aide
Voila, en faite j'ai fait un script backup_switch.sh qui permet de faire de la sauvegarde de configuration des switchs HP
Il va lire un fichier switch.txt et pour chaque ligne, il va appeler un autre fichier script.exp qui utilise expect pour faire un scp du fichier de configuration.
Cependant je n'arrive pas à me débrouiller pour utiliser les code erreurs pour si l'un de mes switchs n'est plus joignable qu'il m'envoit un email pour me prévenir.
Voici mes fichiers :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 switch# more switch.txt switch1@switch1.toto.net switch2@switch2.toto.net switch3@switch3.toto.net switch4@switch4.toto.net
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 # more backup_switch.sh #!/bin/bash -x ## Vérification du dossier ## echo password du user: p1=`echo tutututu` date=$(date '+%Y-%m-%d') dir="/data/Conf_switch/hp/$1/Save_$date" if [ -d "$dir" ]; then echo "le dossier existe !" rm -rf $dir fi ## Sauvegarde des configurations ## mkdir /data/Conf_switch/hp/$1/Save_`date '+%Y-%m-%d'` echo OK cat /root/Save_switch/switch.txt |while read switch do nom=` echo $switch | cut -d@ -f1` /root/Save_switch/script.exp `echo $p1 | tr A-Za-z N-ZA-Mn-za-m` /data/Conf_switch/hp/$1/Save_`date '+%Y-%m-%d'`/$nom-`date '+%Y-%m-%d-%H-%M'`.conf "$switch:/cfg/startup-config" $nom if [ $? -ne 0 ]; then echo "La sauvegarde de $nom ne s'est pas bien passee." | mail -a "From: no-reply@toto.com" -s "Erreur de la sauvegarde des switchs HP" papa.noel@toto.com fi done echo FIN exit 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #!/usr/bin/expect -f set force_conservative 0 ;# set to 1 to force conservative mode even if ;# script wasn't run conservatively originally if {$force_conservative} { set send_slow {0 .0} proc send {ignore arg} { sleep .1 exp_send -s -- $arg } } set fic [lindex $argv 1] set dir [lindex $argv 2] set nom [lindex $argv 3] spawn scp $dir $fic set pp [lindex $argv 0] send -- "PROCEDURE EN COURS...\r" expect -exact "\r$nom's password: " send -- "$pp\r" expect eof exit 0
Si quelqu'un a une petite idée de comment je pourrais faire ça serait fort sympathique
Merci beaucoup.
Partager