problème 1: grep renvoie 0 s'il trouve des occurences, et 1 s'il ne trouve rien, et pas le nombre d'occurences trouvées
Ensuite, n'utilise pas grep, parce que si tu as les process tata et tatata tu n'arriveras pas à les différencier. Utilise plutôt pidof qui lui te retournera les PID des process que tu recherches (3 process => 3 PID).
Avec wc -w tu peux compter le nombre de process trouvés.
Et voilà, c'est fini. T'as du bol, j'avais qu'un truc urgentissime à faire ce soir... Fais chier, je dois y retourner...
#!/bin/bash
cat liste | while read process nb
do
echo "debug: Searching process: $process ($nb)"
[^] # Re: pour repondre a la question:
Posté par liberforce (site web personnel, Mastodon) . En réponse au message Besoin d'aide Script d'automatisation ??. Évalué à 2.
Ensuite, n'utilise pas grep, parce que si tu as les process tata et tatata tu n'arriveras pas à les différencier. Utilise plutôt pidof qui lui te retournera les PID des process que tu recherches (3 process => 3 PID).
Avec wc -w tu peux compter le nombre de process trouvés.
Et voilà, c'est fini. T'as du bol, j'avais qu'un truc urgentissime à faire ce soir... Fais chier, je dois y retourner...
#!/bin/bash
cat liste | while read process nb
do
echo "debug: Searching process: $process ($nb)"
nbfound=$(pidof $process | wc -w)
echo "debug: Found $nbfound time(s) $process"
if [[ $nbfound != $nb ]]
then
echo "`date "+%d/%m/%y"` Process '$process' missing (expected $nb, found $nbfound)" >> alarme.log
fi
done
PS:
la référence en cours de shell script:
http://www.tldp.org/LDP/abs/html/index.html (en)
http://www.bsdbooks.net/shells/scripting/fr/ (fr)
La version anglaise est la plus à jour