Accueil > Forum > > > > Crontab et script PHP...
Crontab et script PHP...
lundi 15 août 2011 à 13:28:29 |
Crontab et script PHP...

Mickael33480
|
Bonjour à tous,
Voilà j'ai un petit soucis que je n'arrive pas à avoir... Je vous explique : j'ai un script PHP qui est exécuter par crontab toutes les minutes. Il est lancer comme ceux-ci :
Code : * * * * * php -f /home/{user}/api/ping.php > /home/{user}/log/crontab/ping.log
Ce script à pour but de détecté et relancer les serveurs qui ne répondent pas au "master". Lorsque je l'exécute par un navigateur, il fonctionne correctement.
Lorsque je passe par les commandes inux / linux (/usr/bin/php ou php /home/{user}/api/ping.php, je peux constater que le scripte me met ça :
Code : ok pour le serv. : XXXXX en date du 15-08-2011 a 12:21:59
ok pour le serv. : XXXXX en date du 15-08-2011 a 12:21:59
Le serveur ne répond pas...
Lancement process.
puis il s'arrête, alors que normalement il doit faire ça :
Code :
#!/usr/bin/php
ok pour le serv. : XXXXX en date du 15-08-2011 a 12:56:01
ok pour le serv. : XXXXX en date du 15-08-2011 a 12:56:01
Le serveur ne répond pas...
Lancement process.
* Envoie de l'E-Mail d'information au client,
* Envoie du SMS d'information au N1 sur place,
* connexion OK,
* authentification en cours,
* connexion OK,
* OK pour envoie de la commande,
* serveur ok,
* Envoie de l'E-Mail d'information au client,
* Clôture intervention avec rapport console.
ok pour le serv. : XXXXX en date du 15-08-2011 a 12:56:13
ok pour le serv. : XXXXX en date du 15-08-2011 a 12:56:13
Si ont compare les deux réponses du script, ont peux constaté que la seconde, qui est exécuter par un navigateur, vérifie deux autres serveurs avant de s'arrêter... Je n'arrive pas a trouver d'où proviens ce défaut, je commence à m'arracher les cheveux  .
Je vais mettre mon code épuré en ligne juste ci-dessous.
Merci d'avance.
|
|
lundi 15 août 2011 à 13:28:43 |
Re : Crontab et script PHP...

Mickael33480
|
Code PHP : #!/usr/bin/php
<?php
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
set_time_limit(0);
ignore_user_abort(1);
/* Les classes et fonctions incluse par require_once ne sont pas présentes ici*/
mysql_connect("{HOST}", "{LOGIN_NAME}", "{PASSWORD}");
mysql_select_db("{DATABASE}");
$reponse = mysql_query("SELECT * FROM `user_serv` ");
while ($donnees = mysql_fetch_array($reponse) )
{
$server = new control();
$status = $server->ServerInfo();
if(!$status[ping])
{
if($donnees['ttm'] == "" or $donnees['ttm'] == "0" )
{
$machine = $donnees['ip'];
$user = $donnees['pseudo'];
$pass = $donnees['pass_ftp'];
$mail = $donnees['email'];
$date = date("d-m-Y");
$heure = date("H:i:s");
$id = $donnees['id'];
echo " * Envoie de l'E-Mail d'information au client\n";
/* script de l'envoie d'E-Mail au client */
$message = "
Bonjour,<br><br>
Notre système de monitoring vient de détecter un défaut sur votre<br>
serveur $machine. Le défaut a été constaté à la date $date $heure<br><br>
Notre équipe de techniciens sur site (opérationnelle 24h/24, 7j/7),<br>
a été informée de ce défaut et va intervenir sur votre machine.<br><br>
Sachez que d'autres interventions peuvent être en cours actuellement
et qu'il faut compter en moyenne 30 minutes par intervention et par machine.<br><br>
Par conséquent, nous ne pouvons pas vous donner plus de précisions quant à l'heure de début de l'intervention.<br>
Vous recevrez un email dés qu'un technicien prendra en charge votre
serveur. En attendant, vous avez la possibilité de le rebooter à partir
de votre manager.<br><br>
Logs:<br>
----------------------<br>
PING $machine ($machine) from XXXXXXX : 56(84) bytes of data.<br>
From XXXXXXX: Destination Host Unreachable<br>
From XXXXXXX: Destination Host Unreachable<br>
From XXXXXXX: Destination Host Unreachable<br><br>
--- $machine ping statistics ---<br>
10 packets transmitted, 0 packets received, +6 errors, 100% packet loss<br>
---------------------<br><br>
Un redémarrage automatique viens d'être effectuer. Merci de vous connecter sur votre pannel, pour vérifier le re-lancement du serveur. Si le serveur c'est relancer, nous vous conseillons de vérifier sur la console et voir c'est produit.
--<br><br>
Cordialement,
";
$sujet = "[suivi] defaut sur le serveur $ip";
$entetes = "MIME-Version: 1.0\n"."From:XXXXXXX@XXXXXXX.fr\r\nContent-type: text/html; charset= iso-8859-1\nBcc:XXXXXXX@XXXXXXX.fr;";
mail("$mail", "$sujet", "$message",$entetes );
echo " * Envoie du SMS d'information au N1 sur place\n";
/* script de l'envoie du SMS au N1 */
/*SCRIPT NON PRESENT ICI*/
if(false === $connection = ssh2_connect($machine, 22))
{ //echec de connexion
echo "echec de connexion";
}
else
{ //Connexion OK
echo "connexion OK\n";
echo "authentification en cours\n";
if(false === ssh2_auth_password($connection,$user,$pass))
{
echo "Echec d'authentification\n";
}
else
{
echo "connexion OK";
if(false === $shell=ssh2_shell($connection, 'xterm'))
{
echo "Erreur pour l'envoie de la commande\n";
}
else
{
echo "OK pour envoie de la commande\n";
/*SCRIPT NON PRESENTE ICI
Il fait une connexion SSH avec le serveur en question, si il n'y arrive pas, Hard reboot de la machine.
*/
}
}
}
/* second test du serveur */
if($status[ping])
{
echo " * Envoie de l'E-Mail d'information au client\n";
/* script de l'envoie d'E-Mail au client */
echo (" * Clôture intervention automatisée avec rapport console.\n");
/* script de cloture d'intervention automatise */
}
else
{
/* Ajout d'une intervention pour vérifier directement dans la baie le fonctionnement du serveur */
}
}
unset(/* Effacement des variables utilisés précédemment*/);
}
else
{
$date = date("d-m-Y");
$heure = date("H:i:s");
echo ("ok pour le serv. : ".$port." en date du ".$date." a ".$heure."\n");
unset(/* Effacement des variables utilisés précédemment*/);
}
}
mysql_close();
?>
|
|
lundi 15 août 2011 à 13:58:24 |
Re : Crontab et script PHP...

kohntark
|
Salut,
Tu fournis beaucoup de code, c'est bien, ... mais on ne retrouve pas :
"Le serveur ne répond pas...
Lancement process."
Où est ce écrit ? Dans la classe control ?
Ca :
Code PHP : <?php
if (!$status[ping]) {
?>
C'est une erreur de copié/collé ou ping est une constante ?
Faut il l'écrire :
Code PHP : <?php
if (!$status['ping']) {
?>
Es tu certain que tu entres bien dans cette condition ?
Est ce que l'affichage des erreurs est activé ?
Ton activation est incomplète, il faut ajouter, dans le doute :
Code PHP :
Cordialement,
Kohntark -
|
|
lundi 15 août 2011 à 14:29:37 |
Re : Crontab et script PHP...

Mickael33480
|
Salut kohntark,
Déjà merci pour ta réponse.
Effectivement :
"Le serveur ne répond pas...
Lancement process."
est un oublis, il est dans cette partie :
Code PHP :
<? if(!$status['ping'])
{
if($donnees['ttm'] == "" or $donnees['ttm'] == "0" )
{
$machine = $donnees['ip'];
$user = $donnees['pseudo'];
$pass = $donnees['pass_ftp'];
$mail = $donnees['email'];
$date = date("d-m-Y");
$heure = date("H:i:s");
$id = $donnees['id'];
echo " * Le serveur ne répond pas.\n";
echo " * Lancement process.\n";
echo " * Envoie de l'E-Mail d'information au client\n";
/* script de l'envoie d'E-Mail au client */ ?>
Il faut écrire :
Code PHP : <?php
if (!$status['ping']) {
?>
De ceux que j'ai put constaté, le script vas jusqu'à la condition où il indique que le serveur ne ce lance pas puis il s'arrête au niveau de la connexion SSH ici :
Code PHP :
<? echo " * Envoie du SMS d'information au N1 sur place\n";
/* script de l'envoie du SMS au N1 */
/*SCRIPT NON PRESENT ICI*/
if(false === $connection = ssh2_connect($machine, 22))
{ //echec de connexion
echo "echec de connexion";
}
else
{ ?>
J'ai déactiver le script d'envois de SMS pour voir si il n'y avait pas une erreur de codage (ça peux arriver  ), mais pas plus d'avancement...
pour info j'ai configurer mon serveur php en short_open_tag 1 donc il comprend le <? ?>
Je viens d'ajouter aussi :
Code PHP : <? error_reporting(E_ALL); ?>
Le serveur ne me donne pas plus de code erreur que toute à l'heure....
|
|
lundi 15 août 2011 à 15:26:40 |
Re : Crontab et script PHP...

kohntark
|
De ceux que j'ai put constaté, le script vas jusqu'à la condition où il indique que le serveur ne ce lance pas puis il s'arrête au niveau de la connexion SSH ici
Si il s'arrêtait vraiment là tu aurais les echo de l'envoi du mail non ?
(* Envoie de l'E-Mail d'information au client, etc ...)
Hors d'après ce que tu dis dans ton premier post les derniers echo sont :
"Le serveur ne répond pas...
Lancement process."
En ajoutant des echo un peu partout, voir en désactivant certaines portions de code (mail, ...) tu devrais localiser précisément l'endroit où ça bloque.
Quand tu dis "puis il s'arrête" (", alors que normalement il doit faire ça :") le process est il réellement terminé ?
Utilises tu le même php.ini que le serveur web ?
Dans le code non présent ici tu n'as pas une boucle ou un appel à une fonction système qui poserait pb ?
Un ob_start() qqpart ?
Un die() exit() ?
...
Cordialement,
Kohntark -
|
|
lundi 15 août 2011 à 16:48:40 |
Re : Crontab et script PHP...

Mickael33480
|
Salut,
Sur le script j'avais la commande "echo * Envoie de l'E-Mail d'information au client," qui étaie commentée donc pas d'affichage direct. Normalement c'est un script exe par crontab donc pas de retour à avoir...
J'ai activer tous les echos maintenant. J'ai comment la fonction ssh2 pour voir et voici ce que le serveur fait maintenant :
Code :
ok pour le serv. : XXXXX en date du 15-08-2011 a 16:42:32
ok pour le serv. : XXXXX en date du 15-08-2011 a 16:42:32
* Le serveur ne répond pas.
* Lancement process.
* Envoie de l'E-Mail d'information au client
* Envoie du SMS d'information au N1 sur place
* Toujours pas de réponse du serveur, ajout d'une intervention pour vérifier directement dans la baie le fonctionnement du serveur
ok pour le serv. : XXXXX en date du 15-08-2011 a 16:42:32
ok pour le serv. : XXXXX en date du 15-08-2011 a 16:42:32
Entre l'envoie de l'E-mail et le SMS normalement il y a la connexion SSH, je sais ça change un peux du script qui est énoncé plus haut.
|
|
mardi 16 août 2011 à 00:36:56 |
Re : Crontab et script PHP...

Mickael33480
|
Re,
Je pense que cela viens de la commande avec le ssh2_connect(....), qui n'est pas "compris" par la fonction php /home.../ping.php car si je test avec un script fonctionnel il ne passe pas non plus... J'en perds mon latin 
|
|
Cette discussion est classée dans : code, php, ok, serv, xxxxx
Répondre à ce message
Sujets en rapport avec ce message
HELP !!! code php pas tout à fait ok [ par emetrem ]
Bonjour à tous /toutes, Je débute complètement en php et même en html. il y a 6 mois je ne savais pas comment envoyer un site sur la toile !!! c'est
php SQL (ajout) [ par medhamdi12 ]
bon journée a tous, dans le code php ci dessous il affiche des erreurs en exécution Undefined index: dat Undefined index: nbr Aide moi SVP code:
Script protégée avec Starpass [ par Clad38 ]
Bonsoir à tous, Ayant actuellement un serveur de jeu en ligne, un système de dons via Starpass est disponible. Pour le moment mon équipe et moi même
banalisation compliqué [ par j3r3m067 ]
Bonjour à tous, j'essai de banaliser mon expression pour que quand je clique sur le bouton test, ça execute mon windows.location. Mais j'y arrive pa
Quelle action pour mon formulaire? [ par padymen ]
Bonjour, j'ai écrit un formulaire pour créer un fichier XML et un formulaire pour alimenter une base de donnée. Comme les champs ne sont pas disjoints
Lancer le téléchargement d'un .exe [ par N3N3SS ]
Bonjour tout le monde, J'ai fini de créer mon site, j'y propose le téléchargement d'un exécutable, calculette de windows pour les tests. J'ai dans m
problème de selection dans un tableau (php) [ par tagadax ]
Bonjour à tous!! Voila j'ai un petit souci.J'ai construis un tableau et donc a chaque bout de colonne j'ai inclu un checkbox.En dehors de mon tableau
Session PHP [ par gabkiel ]
Bonjour, Je suis en train de mettre en place un système de session pour un site en php,j'ai un fichier sessions.php: [code=php]<? $save_path='C:\W
iframe voilà faire apparaître mon php [ par speedylol ]
bonjour ;-) voilà comment faire apparaître le titre de mes script php qui son afficher dans mon iframe la partie en rouge ? [code=html] <!DOCTYPE ht
Redirection depuis index.php [ par Elisa23 ]
Bonjour, J'ai fait un site en Anglais et en Français. Les deux site sont hébergés au même endroit. Je vous ai fait une petite arborescence pour essay
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|