Exeption Script shell

Fermé
RastaMed Messages postés 3 Date d'inscription vendredi 15 avril 2011 Statut Membre Dernière intervention 16 avril 2011 - 15 avril 2011 à 16:23
RastaMed Messages postés 3 Date d'inscription vendredi 15 avril 2011 Statut Membre Dernière intervention 16 avril 2011 - 16 avril 2011 à 23:37
Bonjour, dans le cadre de mon projet de fin d'étude il me faut un script shell (fiable, peu gourmand en ressource ) qui permet de capturer le trafic sur une interface réseau a l'aide de la commande tcpdump , j'ai réussit a faire un script qui marche 5/5 mais il me reste le traitement des exceptions suivants :
- Le redémarrage automatique de script s'il se plante ou si une coupure de courant a eu lieux .
- Le processus de ce script dois être lancer une seule fois .

Je suis vraiment coincé et je sais pas quoi faire . Donc si vous m'aidez n'hésiter pas ^^

Voici le script
#!/bin/bash
name='hostname'
test=1
directory='test/'
echo *********************DEBUT CAPTURE******************
while [ $test -le 4 ]
do
i=1
echo *******************REPERTOIRE $test*****************
for ((i=1;i<=20;i++))
do 
d=$(date +%d-%m-%y)
h=$(date +%H-%M-%S)

#	----------------------------------------------------------------
#	Examine l'état de sortie de la commande cd et si elle 
#   n'est pas nulle,afficher un message d'erreur sur l'erreur 
#   standard et termine le script avec un état de sortie de 1.
#	----------------------------------------------------------------

cd $directory
if [ "$?" = "0" ]; then
	tcpdump -i eth1 -c 50 -ttttnnv | grep -o '.*IP.*proto.*: .*: .*: ' | sed 's/IP.*proto://' >> capture_"$name"_"$d"_"$h".txt
else
	echo "Cannot change directory!" 1>&2
	exit 1
fi

done
export test
sh parcour_rep $test & 
let $[test+=1]
done
echo **********************FIN CAPTURE********************* 
A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
15 avril 2011 à 18:01
Salut,

Intéresses-toi au fichier "/etc/inittab" et à ses directives "respawn" et/ou "once"...
1
RastaMed Messages postés 3 Date d'inscription vendredi 15 avril 2011 Statut Membre Dernière intervention 16 avril 2011
16 avril 2011 à 17:06
je suis un peu faible en shell , si vous pouvez m'exliquer un peu se que je dois faire exactement
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
16 avril 2011 à 18:02
Je n'ai jamais utilisé "inittab" à ces fins, mais d'après ce que j'ai compris, une simple ligne comme suit :

xx:2345:respawn:/chemin/ton/script

Devrait suffire à relancer ton programme à chaque fois que celui-ci se termine.

xx = Identifiant unique
2345 = Niveaux d'exécution où le programme devra être lancé
respawn : Commande : Le processus est redémarré à chaque fois qu'il se termine
/chemin/ton/script = Le chemin abslou vers ton programme.
0
RastaMed Messages postés 3 Date d'inscription vendredi 15 avril 2011 Statut Membre Dernière intervention 16 avril 2011
16 avril 2011 à 23:37
merci pour votre reponse , le probleme que j'utilise un OS StoneGate ( firewall) basé sur debian et j'ai po trouver inittab .
0