[RÉSOLU] Problème lancement script avec cron

Bonjour,

Voilà mon problème, j’ai un script en php, que j’ai nommé script.php, le voilà :

<?php function connexion_OCS() { global $link_ocs,$db_ocs; //connection OCS $db_ocs = "ocsweb"; //lien sur le serveur d' OCS $link_ocs=mysql_connect('localhost','ocs','ocs'); if(!$link_ocs) { echo "
ERROR: MySql connection problem
".mysql_error()."
"; die(); } //fin connection OCS } connexion_OCS(); //récupération de la date $date=date("d/m/Y H:i:s"); echo "********** DEBUT DU SCRIPT => ".$date." ***************
"; //selection de la base OCS mysql_select_db($db_ocs,$link_ocs); //recherche de toutes les machines ou le TAG est à mettre à jour $sql_machine="SELECT h.id,n.ipsubnet FROM hardware h,accountinfo a,networks n WHERE h.id=a.hardware_id and n.hardware_id = h.id AND (a.TAG='' OR a.TAG is null OR a.TAG='NA')"; $resultat = mysql_query($sql_machine, $link_ocs); //parcourt des différentes valeurs de la requête while( $val = mysql_fetch_array($resultat) ) { $list_id[]=$val['id']; $ipsubnet_mach[$val['id']]=$val['ipsubnet']; } $i=0; if (isset($list_id)){ foreach ($list_id as $key=>$value){ $sql="UPDATE accountinfo SET TAG='$ipsubnet_mach[$value]' WHERE hardware_id='$value'"; //mise à jour des TAG $error=mysql_query($sql,$link_ocs); if ($error == false) echo $sql."
"; $i++; } } echo "Mise a jour de ".$i." machines
"; //récupération de la date $date=date("d/m/Y H:i:s"); echo "********** FIN DU SCRIPT => ".$date." ***************
"; ?>

Le script fonctionne bien et j’ai fais crontab -e et j’ai mis :

“*/1 * * * * root cd /var/www/ocs && php script.php >> /var/www/ocs/logs_scripts.log”

Si quelqu’un à une idée d’où cela peut venir ?
je ne sais pas si je suis au bon endroit pour poser cette question, si non dite moi où est-ce qu’on pourrait m’aider.

Merci beaucoup d’avance pour votre aide.

Quoi donc ? Tu ne nous dis même pas quel est le problème ni les symptômes.

/var/www/ocs —> serait plutot /var/www/docs

Sinon perso. je trouve ça bizarre : php script.php

Tu veux l’executer en console ou via un navig. internet ???
Dans le premier cas, utilise php, mais dans ce cas je ne vois pas l’intérêt de tes balises echo et son stockage dans le rep. web n’est sans doute pas judicieux
Si tu veux faire comme dans un navig. fais le avec lynx. Et dans ce cas il faut qu’il soit interprété par ton serveur …
donc ce serait plutôt un truc du syle lynx 127.0.0.1/script.php

non ?
++
Cyrille

Désolé, en faite le script marche quand je le lance à la main, mais normalement d’éprés ce que j’ai mis dans le crontab il devrait ce lancer toute les minutes non ?

Donc est-ce que j’ai fais une erreur dans la syntaxe ou est-ce que j’ai un autre problème ?

[quote]Le script fonctionne bien et j’ai fais crontab -e et j’ai mis :

“*/1 * * * * root cd /var/www/ocs && php script.php >> /var/www/ocs/logs_scripts.log”[/quote]
Si tu fais ‘crontab -e’ en tant que root alors il ne faut pas spécifier le user, cela est valable uniquement dans un fichier style /etc/crontab.

Donc :

1 / Erreur de chemin docs et non ocs

2 / si tu veux $ php /var/www/docs/script.php
est ce ça passe ?

Cyrilleb : Merci beaucoup pour ton aide mais j’ai mis ce que Niloo ma proposer :

“*/1 * * * * cd /var/www/ocs && php script.php >> /var/www/ocs/logs_scripts.log”

Et ça fonctionne correctement.

Mais quand même pourquoi j’aurais une “Erreur de chemin docs et non ocs” ?

Merci beaucoup pour votre aide et vos réponses rapide.

autant pour moi mais quand j’ai vu ocs j’ai cru que tu parlais de docs (avant il me semble que sur certaines distrib le rép. de publication web portait le nom de …www/doc ou un truc du style.
Donc j’ai plutot pensé à une erreur de frappe.
Mais ce doit être ma mémoire qui fait défaut :mrgreen: :mrgreen: :mrgreen: :mrgreen:

Ok aucun problème. J’aurais du préciser que c’était un script pour OCS peut être.

Toujours est-il que la manip de Niloo fonctionne, donc un grand merci à tous pour votre aide. :smt023