#26 Le 08/04/2011, à 08:52
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Bonjour,
Un ls -l de shutdown-ip.sh donne :
-rwxrwxrwx 1 root root 168 2011-04-07 10:34 shutdown-ip.sh
J'ai refait un chmod +x shutdown-ip.sh
Dans "/var/log/syslog", j'ai bien les lignes :
Apr 8 08:50:01 serveur CRON[14569]: (root) CMD (sh /home/user/shutdown-ip.sh)
Mais le script n'éteint pas le serveur.
Merci d'avance
Hors ligne
#27 Le 08/04/2011, à 12:35
- KujakuChan
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
J'ai modifié un peu le script et il marche chez moi.
Le script marche en l'état où il a été fait. J'ai juste ajouté un else dans le cas où le PC serait toujours allumé pour m'assurer de l'affichage et changé la commande pour éteindre en message parce que je ne souhaite pas éteindre ma machine non plus.
J'ai aussi remarqué l'absence de déclaration (type de script) à la première ligne et j'ai testé mais apparemment ça n'a aucun lien surtout quand on lance le script explicitement avec sh.
Je vais modifier encore le script de telle sorte qu'il complète un fichier (append) avec un tag horaire pour voir si il exécute bien les commandes. En principe ça ne devrait pas coincer et j'admets avoir du mal à comprendre d'où peut venir ton problème.
En tout cas je teste ça et je te donne le résultat plus tard.
#!/bin/sh
HOST="192.168.1.13"
# no ping request
COUNT=1
count=$(ping -c $COUNT $HOST | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
if [ $count -eq 0 ]; then
# 100% failed
echo `date +'%F %k:%M:%S'` shutdown machine >> test.txt
else
echo `date +'%F %k:%M:%S'` $count ping received over $COUNT tries. >> test.txt
fi
Bon ben en fait le temps d'écrire mon message j'ai déjà confirmation que tout marche comme prévu.
/var/log/cron.log
Apr 8 12:29:01 Devstation cron[1066]: (user) RELOAD (crontabs/user)
Apr 8 12:29:01 Devstation CRON[2539]: (user) CMD (sh /home/user/test.sh)
Apr 8 12:30:01 Devstation CRON[2557]: (user) CMD (sh /home/user/test.sh)
Apr 8 12:31:01 Devstation CRON[2573]: (user) CMD (sh /home/user/test.sh)
test.txt
2011-04-08 12:28:55 shutdown machine
2011-04-08 12:29:04 shutdown machine
2011-04-08 12:30:04 shutdown machine
2011-04-08 12:31:04 shutdown machine
2011-04-08 12:32:04 shutdown machine
2011-04-08 12:33:04 shutdown machine
2011-04-08 12:34:04 shutdown machine
2011-04-08 12:35:04 shutdown machine
自分の考え:ウィンドウズがライナックスに対するのはデルフィがC++に対するようなものである。
Just a thought : Windows is to Linux as Delphi is to C++ . Juste une pensée : Windows est à Linux ce que Delphi est à C++.
Hors ligne
#28 Le 08/04/2011, à 12:40
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Je vais tester en début d'après midi.
Par contre, je n'ai pas de fichier "/var/log/cron.log"
Hors ligne
#29 Le 08/04/2011, à 13:16
- KujakuChan
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Moi non plus je ne l'avais pas il y a pas plus loin qu'hier (ou avant-hier je ne sais plus trop)
Il faut installer le paquet sysklogd je crois et éditer le fichier /etc/syslog.conf pour dé-commenter la ligne qui va bien dedans.
自分の考え:ウィンドウズがライナックスに対するのはデルフィがC++に対するようなものである。
Just a thought : Windows is to Linux as Delphi is to C++ . Juste une pensée : Windows est à Linux ce que Delphi est à C++.
Hors ligne
#30 Le 08/04/2011, à 14:17
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
J'ai bien installé le paquet sysklogd.
J'ai décommenté la ligne "cron.* ; mais je n'ai toujours pas le fichier "/var/log/cron.log"
Modification :
J'ai redémarré le serveur. J'ai bien le fichier cron.log
Je re-test et vous tiens au courant.
Dernière modification par remi82 (Le 08/04/2011, à 14:23)
Hors ligne
#31 Le 08/04/2011, à 14:31
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Dans les logs cron.log, je vois bien le scripts qui tourne.
Toutes les deux minutes tel que je l'ai planifié.
Mais le serveur ne s'éteint toujours pas.
Je n'y comprend rien. Car lorsque je le lance manuellement le script, ça fonctionne.
Hors ligne
#32 Le 08/04/2011, à 17:51
- KujakuChan
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Qu'est-ce qu'il te sort le journal de cron ?
Est-ce que tu as pensé à faire une sortie vers un fichier comme dans ma version modifiée avec un timestamp ?
Comme ça, ça prouverait bien que le script est exécuté comme il faut via cron (ou pas).
Normalement pas de doute mais au moins ça permet de les écarter.
Sinon je ne connais pas d'autre moyen d'analyser plus en profondeur ce qui se passerait à ton niveau.
Essayes de donner les droits de root sur la commande.
Je veux dire au lieu de lancer un sh <script> lancer un sudo sh <script>.
Il faudra juste régler le problème de la saisie du mot de passe.
A une époque j'avais feinté dans ce genre de situation en écrivant le mot de passe dans un fichier dans lequel je restreint les droits, etc... mais je ne sais pas si ça peut marcher ici et en plus c'est une solution pas très classe. Disons que c'est une solution provisoire.
Je crois en tout cas que le problème c'est qu'il te faut les droits de root pour éteindre ou redémarrer le PC.
Alternative :
Te donner les droits sur la commande shutdown sans avoir à utiliser ni sudo, ni mot de passe.
Je vais vérifier mais je crois qu'il faut ces droits.
EDIT: Il me semblait bien. J'ai eu un message qui me demandais les droits de root donc je ne suis pas fou.
Dernière modification par KujakuChan (Le 08/04/2011, à 17:59)
自分の考え:ウィンドウズがライナックスに対するのはデルフィがC++に対するようなものである。
Just a thought : Windows is to Linux as Delphi is to C++ . Juste une pensée : Windows est à Linux ce que Delphi est à C++.
Hors ligne
#33 Le 08/04/2011, à 18:01
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Merci beaucoup pour ton aide. Je teste ça dès que possible et je te tiens au courant.
Car là, je suis sur une urgence.
Merci
Hors ligne
#34 Le 11/04/2011, à 09:41
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Bonjour,
Je viens de faire de nouveaux tests.
Si j'écris dans un fichier lorsqu'il ne ping plus, ça fonctionne parfaitement.
Quand je remplace par "shutdown -h 0", le pc ne s'éteint pas.
Il s'agit donc bien d'un problème de droit. En mettant sudo devant la commande, ça ne fonctionne pas plus.
Je vais donc chercher comment faire pour résoudre ce problème.
Encore merci de votre aide
Hors ligne
#35 Le 11/04/2011, à 11:48
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
Je viens de refaire un test sur un ubuntu avec une interface.
Le script ne fonctionne pas plus.
A la place de "shutdown -h 0", j'ai mis "halt". Et là, le pc s'éteint.
J'ai donc mis "halt" sur mon serveur, mais ça ne fonctionne pas.
C'est vraiment étrange.
Hors ligne
#36 Le 11/04/2011, à 12:18
- remi82
Re : [Résolu] Script pour éteindre un serveur si le principal est éteint
J'ai enfin trouvé.
A la place de mettre "shutdown -h 0" ou "halt", j'ai mis "/sbin/shutdown -h 0"
Et là, ça fonctionne.
Merci à vous.
Hors ligne