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.