Forum Clubic

Tâches Planifiées

Bonjour,

J’ai développé un script php que j’utilise pour une tâche planifiée CRON sur un serveur Linux. Ce script permet entre autre d’enregistrer dans un fichier .ods ou .txt, les données se trouvant dans une base de donnée.
Le problème est que le fichier ne s’enregistre pas (il ne se créé pas du tout) une fois la tâche lancée. Or en local et en lançant le script directement via internet (comme une page php “normale”) tout marche : la création du fichier et l’enregistrement des données.
Le problème ne viendrait pas de la tâche car le reste du script (insertion, mise à jour ou suppression des données dans la table) marche parfaitement.
D’où viendrait le problème ?

Voici le code php :

$nom_fichier=“nom_du_fichier.ods”;

if (!file_exists($nom_fichier))
{
$lefichier=fopen($nom_fichier,“a+”);
fputs($lefichier,donnees_a_inserer);
}

else
{
$lefichier=fopen($nom_fichier,“a+”);
}

fputs($lefichier,donnees_a_inserer);

fclose($lefichier);

Si le souci vient du code concernant le fichier, j’ai tout essayé : changer l’adresse du fichier, changer le mode de “fopen”, changer l’extension du fichier… j’ai également changé les droits d’accès du répertoire où se créera le fichier.

Quelqu’un aurait-il une piste ou une idée s’il vous plaît ?

Merci d’avance.

Comment le lances-tu ce script ? (par quelle(s) commande(s) ?)

Bonjour Raynor,

Le script est lancé grâce à la commande :
php -q -f /var/www/vhosts/le_nom_de_domaine/httpdocs/le_fichier_php.php>/dev/null 2>&1

Et si au lieu de renvoyer la sortie dans /dev/null tu la mettais dans un fichier, est-ce qu’il n’y aurait des infos utiles ?

La notification d’erreurs éventuelles est envoyé par mail, et je n’en reçois pas. La tâche a l’air de marcher, mais quand elle arrive au passage où il faut enregistrer les données, on dirait qu’elle ne prend pas en compte ce passage.

Peut-être dans dans ce qui est renvoyé à /dev/null il y a un Warning ou Error de la part de PHP ?