Bonjour tout le monde.
Je dois réaliser un script en shell qui compare les process d'une liste 'procList' à ceux qui sont déja en train de tourner (ps). C'est du ksh, et je ne sais pas ou est l'erreur. Pouvez-vous m'aider sil vous plait.
Voila mon code source
#!/bin/ksh
more procList | while read line
do
NomProc=$(ps -A | grep `echo $line | awk '{print $1}')
if [ $? -eq 1 ] ; then echo "$NomProc ne tourne pas." >> Alarme.log
else
fi
done
# A ma sauce
Posté par dguihal . Évalué à 2.
#!/bin/ksh
cat procList | while read line
do
NomProc=$(ps $line | awk '{print $1}')
if [ $? -eq 1 ] ; then echo "$NomProc ne tourne pas." >> Alarme.log ; fi
done
Ceci suppose que procList contient une liste de PIDs
[^] # Re: A ma sauce
Posté par dguihal . Évalué à 2.
Comment veux-tu afficher "$NomProc" si celui-ci ne tourne pas ?
De plus le $? risque de faire reference à la commande awk (voire à l'affectation) et non pas au ps
donc
#!/bin/ksh
cat procList | while read line
do
ps $line >/dev/null
if [ $? -eq 1 ] ; then echo "le PID $line ne tourne pas." >> Alarme.log ; fi
done
[^] # Re: A ma sauce
Posté par abendas . Évalué à 1.
[^] # Re: A ma sauce
Posté par dguihal . Évalué à 2.
[^] # Re: A ma sauce
Posté par abendas . Évalué à 1.
[^] # Re: A ma sauce
Posté par dguihal . Évalué à 2.
#!/bin/ksh
cat procList | while read line
do
if [ `ps ax | grep $line | wc -l ` -le 1 ] ; then echo "le process $line ne tourne pas." >> Alarme.log ; fi
done
pour le coup du BSD, il s'agit probablement du type de formatage des options du ps ( avec ou sans "-" ce qui dans un cas est a la norme POSIX et de l'autre BSD )
[^] # Re: A ma sauce
Posté par fearan . Évalué à 1.
if ps ax | grep $line | grep -s -v grep
then
echo ... > Alarm.log
fi
ce qui évite que le grep soit potentiellement dans la liste des processus ( mais pas toujours ce qui rend un comptage de ligne hasardeux )
( le -s permet au grep de n'afficher aucune ligne ( mais renvoi vrai si il aurait du en afficher )
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
[^] # Re: A ma sauce
Posté par gaaaaaAab . Évalué à 1.
Le truc cool aussi, c'est que l'option -C peut être invoquée plusieurs fois pour un même appel à ps, ce qui peut permettre de simplifier notoirement la réponse au problème d'abendas :)
C'est plus rigolo de chercher soi-même ;)
mais je peux proposer un bout de script avec des ps -C si c'est nécessaire.
[^] # Re: A ma sauce
Posté par abendas . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.