Script linux pour relancer service - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 13-06-2006 à 09:19:27
pour vérifier si ton processus tourne, tu peux peut-être utiliser quelque chose comme 'pidof lenomdetondemon'
Marsh Posté le 13-06-2006 à 10:05:51
Hello
je pense avoir résolu ma petite question
voici mon script
-------------------------------------------------------------
ps axf > /scripts/process
if grep mondémon /scripts/process ; then
echo "le démon est présent, tout est normal"
else
cd /usr/sbin
./démon restart
echo "restart du démon"
echo "Arret du serveur de messagerie"
qmailctl stop
echo "Démarrage du serveur de messagerie"
qmailctl start
echo "rechargement des mails en attente"
qmailctl doqueue
echo "OK"
fi
ce n'est pas une méthode directe mais cela fonctionne
reste à le mettre dans le crontab
Marsh Posté le 13-06-2006 à 11:32:03
bandito600 a écrit : Hello |
par contre le crontab ne fonctionne pas
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /scripts/verif_process > /dev/null 2>&1
j'ai coupé manuellement mon lien et rien n'a été recréé
j'ai un peu de mal a comprendre la
Marsh Posté le 13-06-2006 à 12:07:59
tu devrais rediriger la sortie de ton script vers un fichier de log ; comme ça tu verrais mieux ce qui se passe.
Marsh Posté le 13-06-2006 à 13:16:30
franceso a écrit : tu devrais rediriger la sortie de ton script vers un fichier de log ; comme ça tu verrais mieux ce qui se passe. |
donc tous les 5mn je devrais voir dans mon log une ligne en + qui me dit que c ok ?
(car g mis si OK alors affiche OK)
par contre si rien ne s'ecrit est ce du a un pb avec le crontab ?
Marsh Posté le 13-06-2006 à 13:22:45
bon bé dans mon fichier de log
je vois bien que c ok
je vais essayer en plantant le lien
Marsh Posté le 13-06-2006 à 13:38:57
voici le message que j'obtiens alors qu'en lancement manuellement tout fonctionne parfaitement
-----------------------
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
sh: pptp: command not found
Modem hangup
Connection terminated.
lancement de la commande pour le lien effectuée Arret du serveur de messagerie Stopping qmail...
qmail-smtpd
qmail-send
qmail-pop3d
Démarrage du serveur de messagerie
Starting qmail
rechargement des mails en attente
Sending ALRM signal to qmail-send.
OK
----------------------
quel est le pb ?
je ne vois pas du tout
Marsh Posté le 13-06-2006 à 14:03:47
bandito600 a écrit : |
quand je lance manuellement j'obtiens
Using interface ppp0
Connect: ppp0 <--> /dev/pts/0
CHAP authentification succeeded
local ip address 10.0.0.30
remote ip adress 10.0.0.31
lancement de la commande pour le lien effectuée Arret du serveur de messagerie Stopping qmail...
qmail-smtpd
qmail-send
qmail-pop3d
Démarrage du serveur de messagerie
Starting qmail
rechargement des mails en attente
Sending ALRM signal to qmail-send.
OK
je ne vois pas pk pptp plante
quelqun aurait une idée ?
merci bcp
Marsh Posté le 13-06-2006 à 14:09:20
il faut que tu précises le chemin complet de toutes les commandes lancées dans ton script. (en particulier dans ton cas : pptp)
pour connaitre le chemin complet d'un exécutable, utilise la commande which dans un terminal.
Marsh Posté le 13-06-2006 à 14:58:15
franceso a écrit : il faut que tu précises le chemin complet de toutes les commandes lancées dans ton script. (en particulier dans ton cas : pptp) |
mais je n'utilise que
cd /usr/sbin
./démon restart
dois je faire ./usr/sbin/pppd ??
et le pptp je ne fais rien avec
par contre je lance ceci
"./pppd call client logfd 1 updetach"
dois je faire
"./usr/sbin/pppd call client_vpn logfd 1 updetach"
Marsh Posté le 13-06-2006 à 15:03:14
je viens de remarquer avec la remarque que quand je lance la manip
j'ai 2 process pptp qui sont lancés
fo que je creuse par la
Marsh Posté le 13-06-2006 à 15:05:00
ReplyMarsh Posté le 13-06-2006 à 15:33:50
le script :
-----------------------
#!/bin/sh
ps axf > /BACKUP/scripts/process
if grep pppd /BACKUP/scripts/process ; then
echo "le lien pppd est présent, tout est normal"
else
cd /usr/sbin
./pppd call client_vpn logfd 1 updetach
echo "lancement de la commande pour le lien effectuée"
echo "Arret du serveur de messagerie"
qmailctl stop
echo "Démarrage du serveur de messagerie"
qmailctl start
echo "rechargement des mails en attente"
qmailctl doqueue
echo "OK"
fi
----------------------
le crontab
----------------------
# surveille le lien entre challenger et jupiter et en cas de coupure le remet
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /BACKUP/scripts/verif_process > /BACKUP/scripts/exec_ok.log
Marsh Posté le 13-06-2006 à 15:48:36
bizarre
essaie peut-être d'ajouter le path de pptp dans ton script quand même (c'est sûrement pppd qui y fait appel).
Si tu ajoutes "export PATH=$PATH:<chemin vers pptp>" en-tete de ton script, est-ce que ça change quelque chose ?
Marsh Posté le 13-06-2006 à 16:00:55
franceso a écrit : bizarre |
OK MERCI BCP
ca marche parfaitement maintenant
export sert à quoi ?
Marsh Posté le 13-06-2006 à 17:01:32
export sert à signifier que la valeur de la variable PATH se transmettra à tous les processus fils.
Marsh Posté le 26-06-2006 à 15:02:42
bandito600 a écrit : mais je n'utilise que |
je suis pas sur qu'il faille mettre "./usr/sbin" ... essai sans le point devant "/usr/sbin" ... sa marchera mieux
Marsh Posté le 12-06-2006 à 17:41:26
Bonjour à tous
je suis novice en script linux et j'aimerais savoir comment je peux via un script lancer par un crontab tous les x minutes
vérifier l'existence d'un service et si celui ci est arrété ou en panne je relance le processus
en gros je veux vérifier l'existence d'un lien pptp entre mon serveur et un autre serveur
et si celui ci n'exisiste plus je le relance
pouvez vous m'aider ?
la je seche totalement
ps : je pensais faire avec une commande grep pour analyser le contenu du texte retourné