#1 Le 09/04/2015, à 11:07
- IBACK
Tâche CRON / Script PHP ne s'exécute pas !
Bonjour à tous,
je souhaite exécuter un script PHP via CRONTAB mais malheureusement rien ne se passe !
Voici mon fichier CRON :
*/2 9-18 * * mon,tue,wed,thu,fri root /usr/bin/php -f /home/moi_meme/batch/mon_script.php >/dev/null 2>&1
je veux donc exécuter ce script toutes les 2 minutes (pour tester) de 9h à 18h du lundi au vendredi - utilisateur = root
mon_script.php a bien les droits nécessaires (exécution "X").
LAMP est installé.
PHP version :
PHP 5.3.10-1ubuntu3.16 with Suhosin-Patch (cli) (built: Feb 13 2015 20:15:22)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
Une idée sur le problème ?
Merci pour votre aide
Ubuntu 12.04 (32 bits) installé
Fabrice
Hors ligne
#2 Le 09/04/2015, à 11:31
- pires57
Re : Tâche CRON / Script PHP ne s'exécute pas !
On peut voir le script aussi?
Utilisateur d'Archlinux, Ubuntu et Kali Linux
Administrateur système et réseau spécialisé Linux.
LinkedIn
Hors ligne
#3 Le 09/04/2015, à 11:43
- IBACK
Re : Tâche CRON / Script PHP ne s'exécute pas !
Voici le script.
L'objectif de ce script est de générer un fichier CSV.
si on l'exécute manuellement, le fichier CSV est bien généré (pas de problème de droits) !
<?php
ini_set("max_execution_time", 'time_limit');
// extraire les données
include "../data/xxxx.php";
// générer le fichier CSV
if ($cdes !== false) {
if (mysql_num_rows($cdes) > 0) {
$list = array();
$numero_ligne = 0;
$meme_commande = "";
$nb_cdes = 0;
while ($reponse = mysql_fetch_array($cdes)) {
if ($reponse["id_order"] != $meme_commande) {
$numero_ligne = 1;
$nb_cdes++;
include "../data/yyyyy.php";
if ($error)
break;
}
include "../data/zzzz.php";
if ($error)
break;
// BtoC -> si particulier BtoC sinon BtoB
$BtoC = "Y";
if ($reponse["group"] != "Particuliers")
$BtoC = "N";
$item = array($activite,
$depot,
str_pad($reponse["id_order"], 15),
$service_transporteur,
$code_regr_chargement,
' ',
$numero_ligne++,
str_pad($reponse["reference"], 16),
$reponse["qte"],
' ',
str_pad(substr($reponse["company"] . " " . $reponse["firstname"] . " " . $reponse["lastname"],0,30), 30),
str_pad($reponse["address1"], 30),
str_pad($reponse["address2"], 30),
str_pad($reponse["other"], 30),
str_pad($reponse["phone"], 15),
str_pad($reponse["postcode"], 10),
str_pad($reponse["city"], 30),
$reponse["iso_code"],
str_pad($reponse["email"], 70),
$BtoC,
' ',
' ',
str_pad($reponse["id_customer"], 40)
);
$list[] = $item;
$meme_commande = $reponse["id_order"];
}
// générer CSV
if (!$error) {
$fp = fopen("../ftp/out/ORD_ACT_I_" .
substr($today['year'], 2, 2) . $month . $day . "_" . $today['hours'] . $today['minutes'] . $today['seconds'] . ".csv", 'w');
foreach ($list as $fields)
fputcsv($fp, $fields, ";");
fclose($fp);
}
}
}
?>
Hors ligne
#4 Le 09/04/2015, à 12:09
- credenhill
Re : Tâche CRON / Script PHP ne s'exécute pas !
hello
récupérer les massages d'erreurs
*/2 9-18 * * mon,tue,wed,thu,fri root /usr/bin/php -f ... >/tmp/log 2>&1
Hors ligne
#5 Le 09/04/2015, à 12:40
- gl38
Re : Tâche CRON / Script PHP ne s'exécute pas !
la ligne
include "../data/xxxx.php";
ne doit pas donner le bon fichier quand cron l'exécute : il faut mettre le chemin entier.
Cordialement,
Guy
Hors ligne
#6 Le 09/04/2015, à 14:01
- tiramiseb
Re : Tâche CRON / Script PHP ne s'exécute pas !
Salut,
2 ou 3 questions et commentaires :
- où est placé ce fichier cron ? C'est un cron système (/etc/crontab ou /etc/cron.d/) ou un cron utilisateur (commande "crontab -e")
- plutôt que les noms de jours tu peux mettre leurs numéros (1-5), c'est plus concis
- là ça va tourner de 9h à 18h58, pas de 9h à 18h
Par ailleurs, OK avec gl38, un "include" avec un chemin relatif demande à ce que tu sois dans le bon répertoire lors de l'exécution, tu peux alors faire précéder la commande de "cd /home/moi_meme/batch/;"...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#7 Le 09/04/2015, à 15:13
- IBACK
Re : Tâche CRON / Script PHP ne s'exécute pas !
Merci pour vos réponses.
Ma tâche CRON fonctionne désormais.
plusieurs sources de problème :
1/ PATH incomplet
2/ Dans script PHP, chemins incorrects
3/ erreur dans ma tâche CRON ("root" supprimé)
Merci pour la remarque "18h58" !
Hors ligne
#8 Le 09/04/2015, à 15:17
- tiramiseb
Re : Tâche CRON / Script PHP ne s'exécute pas !
3/ erreur dans ma tâche CRON ("root" supprimé)
Je comprends par là que tu as fait une tâche utilisateur et non une tâche système.
En tant que root, c'est à éviter : généralement, les tâches programmées par root sont des tâches plutôt "système" et pas dédiées à l'utilisateur root en particulier...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 09/04/2015, à 15:22
- IBACK
Re : Tâche CRON / Script PHP ne s'exécute pas !
tout à fait.
Hors ligne