[Résolu] Bash - Script de vérification d'un processus

Salut à tous,

J’aimerai crée un petit script qui me permet de checker un processus et qu’au bessoin si ce processus est manquant de la relancer, car j’ai un petit script pour mon squid qui me permet de faire des stats. je vous le mets ici plus bas ( c’est un petit script de débutant)

#! /bin/sh echo "Killing Squid" /etc/rc.d/init.d/squid stop echo "Wait 2 min" sleep 120 echo "Prostat running ..." /usr/local/bin/prostat +g/usr/local/prostat/prostat.conf /var/log/squid/access.log 2> /var/log/prostat/dimanche.log echo "Delete the old archive" rm -rf /var/log/squid/archives/access.log.gz echo "Move the old access.log.gz" mv /var/log/squid/access.log.gz /var/log/squid/archives echo "Compress the old archive" /bin/gzip /var/log/squid/access.log echo "Make a new access.log" cp -p /var/log/squid/archives/access.log /var/log/squid/ cd /var/log/squid/ & chown -R squid:squid . echo "Launch Squid" squid echo "Finished"

ce script est programer dans Cron pour se lancer tout les dimanche a 00h

Le prob c’est que des fois le process Squid ne relance pas et j’aimerai evité ce problème. Et crée un processus qui checkerai que squid est bien lancer (que je metterai dans cron pour qu’il verifie tous les X temps.

[code]#! /bin/sh
echo "vérifié la présence du processus"
ps -aux | grep squid > a

if [ $a =null] then
squid
elif [$a !=null] then
exit
[/code]

Efin ce code doit etre du n’importe quoi j’ai de grosse lacune en programation, d’ou j’ai du mal à faire des scripts complexe.

Si vous pouvoez me mettre sur la voie, se serais sympas.

Merci :slightly_smiling:

[quote]if [ $a =null] then
squid
elif [$a !=null] then
exit [/quote]
Tu es sûr de ça ?

Non non je suit sur de rien, mais j’essaye de montrer mon raissonement. :stuck_out_tongue:

[Edit]

#! /bin/sh
echo "vérifié la présence du processus"
ps -aux | grep squid > a

if [ $a =null] then
squid
if [$a !=null] then
exit 

C’estr mieux comme ca ?

j’ai aucun sens de prog, d’ou je fait appel a votre aide :slightly_smiling:

C’est equivalent a

J’utilise souvent ca pour d’autres processus.
Par contre faut absolument mettre le path complet surtout si tu le lance en root…

#! /bin/sh echo "vérifié la présence du processus" if pidof squid ; then echo "squid présent" else squid fi

serait ton script corrigé.

pidof squid || squidmarche aussi

hello,

J’avais un peu de times à tuer :

[code]
#!/bin/sh

processus=squid
ok=1

function get_ps() {
pps=which ps
arg=‘aux’
$pps $arg
}

function get_process() {
wrap=which grep
get_ps | $wrap $processus
}

function get_pid() {
kut=which awk
$kut ‘{print $2}’
}

check=get_process | get_pid
if [ -n “$check” ]
then
echo "En route"
ok=1
else
echo "Pas en route"
ok=0
fi[/code]

Yes à un ou deux details près:
Si on utilise bastille, il blinde la sécurité sur killall5:

lrwxrwxrwx 1 root root 16 2006-09-27 11:13 /bin/pidof -> ../sbin/killall5 -rwxr-x--- 1 root root 10212 2006-09-26 15:11 /sbin/killall5
Et j’ai trouvé des unix qui n’avait pas de pidof.

Mais sinon c’est pareil effectivement.

Grand merci de votre aide, je vais pouvoir tester ca aujourd’hui même :slightly_smiling:

[quote=“stonfi”]hello,

J’avais un peu de times à tuer :

[code]
#!/bin/sh

processus=squid
ok=1

function get_ps() {
pps=which ps
arg=‘aux’
$pps $arg
}

function get_process() {
wrap=which grep
get_ps | $wrap $processus
}

function get_pid() {
kut=which awk
$kut ‘{print $2}’
}

check=get_process | get_pid
if [ -n “$check” ]
then
echo "En route"
ok=1
else
echo "Pas en route"
ok=0
fi[/code][/quote]

Désolé de t’avoir fait perdre ton temps, mais il marche pas ton script, et il est trop compliqué pour que je trouve le truc qui va pas :slightly_smiling:

J’ai donc utilisé celui-ci:

#! /bin/sh echo "Vérifié la présence du processus" if pidof squid ; then echo "Squid présent" else squid echo "Squid relancé" fi

Si je peux me permettre une remarque: “Squid relancé” (participe passé en français=adjectif s’appliquant au squid), pas “Squid relancer” (infinitif qui n’a pas sa place dans le contexte).
8)
PS: pour une fois que stonfi est verbeux, vas pas l’ennuyer, même si c’est vrai que c’est un peu long…

ah et sinon, pour faire dans le court, ce que tu as écrit doit pouvoir se contracter de la manière suivante:

[quote=“MattOTop”]Si je peux me permettre une remarque: “Squid relancé” (participe passé en français=adjectif s’appliquant au squid), pas “Squid relancer” (infinitif qui n’a pas sa place dans le contexte).
8)
PS: pour une fois que stonfi est verbeux, vas pas l’ennuyer, même si c’est vrai que c’est un peu long…[/quote]

Humm permet toi, l’orthorthographe n’est pas mon fort. :laughing:

Ps: Stonfi je voulais pas t’embeter, mais juste te le signifié :stuck_out_tongue:

[quote=“MattOTop”]ah et sinon, pour faire dans le court, ce que tu as écrit doit pouvoir se contracter de la manière suivante:

J’ai pas osé :slightly_smiling:
Je code tous mes scripts de la sorte, pas besoin de if pour un truc si simple
Small is beautiful :unamused: