Pour la variable globale, tu peux faire de la sorte :
#!/bin/sh
errno=0
iptables ..... || errno=$(($errno + 1))
iptables ..... || errno=$(($errno + 2))
iptables ..... || errno=$(($errno + 4))
iptables ..... || errno=$(($errno + 8))
iptables ..... || errno=$(($errno + 16))
iptables ..... || errno=$(($errno + 32))
iptables ..... || errno=$(($errno + 64))
exit $errno
Le code de retour de ton script correspondra à la somme des codes d'erreur.
Le problème avec une telle variable globale, c'est que c'est assez lourd.
Une version plus simple (mais qui implique de parser soit un fichier de log, soit stderr/stdout) :
#!/bin/sh
LOG=/var/logs/monlog
errno=0
erreur() {
code=$1
shift
message="$*"
echo "$code|$message" >> $LOG
errno=$(($errno + 1))
}
iptables .... || erreur 1 "Port www réseau 1"
iptables .... || erreur 2 "Port ftp réseau 1"
iptables .... || erreur 3 "Port www réseau 2"
iptables .... || erreur 3 "Port www réseau 3"
exit $errno
Le code de retour du script correspond au nombre d'erreurs rencontrées.
Tu as lu les docs. Tu es devenu un informaticien. Que tu le veuilles
ou non. Lire la doc, c'est le Premier et Unique Commandement de
l'informaticien.
-+- TP in: Guide du Linuxien pervers - "L'évangile selon St Thomas"
Poste le Monday 14 January 2008 13:17:42