tester un serveur avant de s'y connecter

tester un serveur avant de s'y connecter - PHP - Programmation

Marsh Posté le 30-09-2014 à 10:43:39    

Bonjour,
 
Je vous sollicite afin de savoir si il était possible, en php, de tester si un serveur est actif ou non?
Je m'explique un peu plus : actuellement un serveur est actif et un autre est passif (celui devient actif uniquement quand le premier serveur tombe ne panne). Je voudrais pouvoir les tester avant et pouvoir me connecter uniquement au serveur qui sera actif au moment de l’exécution de mon script.
 
Merci de votre aide :)  
A+

Reply

Marsh Posté le 30-09-2014 à 10:43:39   

Reply

Marsh Posté le 30-09-2014 à 11:19:24    

Ben oui, suffit que sur le serveur actif, tu mettes un script qui répond à une requête. Ce script sera périodiquement appelé par le serveur passif, via un script php appelé par une tache planifiée dans le cron. S'il reçoit une réponse, le serveur est bien actif, sinon, il est tombé.
 
Pour éviter des basculement intempestifs, tu peux faire un polling mettons de 5 mins et si y'a pas de réponse, ne pas basculer immédiatement mais refaire un polling au bout d'1 min pour voir si c'était un pb de liaison ponctuel ou que le serveur actif est vraiment tombé.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 30-09-2014 à 13:41:46    

Salut rufo,
Merci de m'aider.
 
Je n'ai pas a gérér le baculement d'un serveur a un autre, je cherche juste a savoir lequel des serveurs est actif. Complément d'information: si le serveur est actif, si on si on s'y connecte en ssh, le prompt aura comme valeur user@serveur1 (A) alors que si il est passif, il aura comme valeur user@serveur2 (P)..  
 
A partir de là, sais-tu si il m'est possible, en php, d’appeler une fonction qui me retourne le prompt d'un serveur? Ça m'aiderait vachement et je pense que ça peut être plus simple que ta solution :)
 
a+

Reply

Marsh Posté le 30-09-2014 à 14:34:55    

Oui, tu peux te connecter en ssh, ftp... sur un serveur. Mais pour ça, faut avoir un compte utilisateur dessus.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 30-09-2014 à 21:52:53    

En php, il est possible d'utiliser les fonctions exec / passthru pour exécuter une commande du genre "ssh user@qqc cat /etc/hostname" ou un autre truc du genre qui permet d'identifier le serveur. Il faut un compte limité ou non qui peut se loguer sans mot de passe avec un fichier clef protégé par un passphrase ou pas.

Reply

Marsh Posté le 11-10-2014 à 17:43:46    

salut
 
tout simplement tente une ouverture de socket
 
ex:
 
$ip = "_adresse_ip_de_ton_serveur_";
$port = "_port_"; //ex: 80 pour le http, 21 pour le ftp, 22 pour le ssh
 
$fd = fsockopen ($ip, $port, $errno, $errstr, 30);
 
if($fd) {
    echo("connexion ok" );
} else {
    echo("connexion hs" );
}

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed