Page 1 sur 3

Reboot d'un serveur

Posté : 03 avr. 2008, 18:44
par kevinf
Bonjour à tous,

je voudrais savoir s'il est possible de créer une script sur un site A avec une tache cron chaque heure qui vérifie qu'un site B soit bien en ligne, s'il l'est tout est bon; or s'il ne l'est pas, le script lancerai le reboot du serveur du site B (sachant que j'ai tout les accès sur le serveur du site B),

Merci de vos répones.

Posté : 03 avr. 2008, 18:55
par Nagol
s'il ne l'est pas comment le site A peut faire en sorte de rebooter le serveur B? il n'y a pas vraiment de solutions à moins que ton soucis soit plus spécifique et que tu l'exprimes mal.

Posté : 03 avr. 2008, 19:28
par kevinf
Merci dabord de ta réponse,
je réexplique :

Le site A (qui lui est en permanence en ligne...normalement) vérifie chaque heure via un script si un site B (situé sur un autre serveur que celui du site A) est bien en ligne.
Si le site B est en ligne, le script ne fais rien.
Or, si le site B n'est pas en ligne (mais le serveur du site B, lui, est bien en service), alors, le script du site A lance un reboot sur le serveur du site B.

J'espère avoir été clair :P

Merci d'avance.

Posté : 03 avr. 2008, 20:01
par Nagol
ok, alors le plus simple serait sans doute de passer par ssh afin d'obtenir quelque chose de sécurisé (même si par essence tu crée une sorte de faille de sécurité en faisant comme ça) et de rebooter le pc comme ça. Tu peux le faire en php relativement simplement je crois.

Je me pose tout de même une question, qu'est ce qui peut t'amener à vouloir rebooter ton ordinateur plutot que de relancer, disont le service qui t'intéresse ou alors simplement essayer de comprendre pourquoi ce service ne reste pas en place?

Posté : 03 avr. 2008, 20:42
par kevinf
Bonsoir,

donc ce n'est pas vraiement mon ordinateur, mais bien un serveur dédié, hébergant un site,
ce qui me pousse à faire cela est que le site hébergé dessus crash régulièrement, juste ce site, et en rebootant le serveur, cela remarche, je ne sait pas d'où cela peut venir,

Merci

Posté : 03 avr. 2008, 20:54
par Sékiltoyai
Pourquoi ne pas simplement relancer apache ?

Posté : 03 avr. 2008, 21:04
par kevinf
Daccord, mais je voudrais faire cela de facon automatiser.

Posté : 03 avr. 2008, 22:18
par Nagol
à vrai dire ce n'est pas plus difficile de relancer apache que de rebooter le serveur mais l'une des méthodes (le reboot) semble un peu disproportionnée. Et puis il serait en fait meilleur d'essayer de comprendre pourquoi le site "crash" tu as des logs d'apache qui pourrait donner un début de piste?

Posté : 03 avr. 2008, 22:23
par Berzemus
peut-être qu'il utilise ruby... :twisted:

Posté : 04 avr. 2008, 09:56
par kevinf
Alors, je veux bien essayer de comprendre, cela doit etre du au fait que le site fonctionne assez bien (c'est un site de jeu), et du coup, la base de donnée ou le serveur sature.
Je ne vois que cela, en attendant, auriez-vous un script pour ma solution?

Merci d'avance.

Posté : 04 avr. 2008, 10:29
par steph29
ben tu peux faire ton script toi meme,
si j'ai bien compris le but est de tester si le serveur apache est toujours en etat normal...

donc tu met un script sur ton serveur web (B) avec un minimum de traitement et tu l'appel depuis (A) si il met du temps a repondre ou ne renvois pas les informations voulues tu lance ton redemarrage apache...

mais sinon tu peux mettre le script de verification directement sur le serveur (B), en testant les process apache, la memoire utilisee, l'age du capitaine, etc. et redemarrer apache en cas de comportement suspect...

Posté : 04 avr. 2008, 11:11
par kevinf
Daccord, mais comment vérifier par exemple, qu'une page affiche :
OK
Et si non, comment faire pour rebooter apache (ou le serveur) à partir d'un autre serveur, tout cela automatiquement(sans aucune intervention humaine) ?

Posté : 04 avr. 2008, 11:30
par zigz4g
Un script sur le serveur B peut suffire.
Dans ton script tu essaye d'appeler une page specifique que tu a developper. En gros elle retourne juste
un OK.
Exemple :
<?php
//Serveur B : Page PHP : unepagequiafficheok.php
echo 'OK';
?>
Ensuite tu peux faire un script bash qui est lance par ta crontab.

Code : Tout sélectionner

#!/bin/bash wget -O /home/user/test.html http://www.tonserveur.fr/unepagequiafficheok.php if [ ! -f /home/user/test.html ] ; do sudo /etc/init.d/apache restart fi rm -f /home/user/test.html
Bon c'est pas super comme code mais ca va peut etre te donner des idees pour
commencer un code.

Posté : 04 avr. 2008, 11:52
par kevinf
Merci,

j'avoue ne pas connaitre les script bash, et dans plesk, pour mettre la commande de ma crontab, il me porpose qu'une seule ligne, que mettre?

Merci

Posté : 04 avr. 2008, 13:42
par Sékiltoyai
Tu mets le code de zigz4g dans un fichier .sh et tu mets son chemin dans la commande du crontab.