Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.php > #3146 > unrolled thread

Qu'est-ce qui empêche un script php de s'écuter en CRON ?

Started byDidier <dbnospam@invalid.fr>
First post2019-09-24 16:41 +0200
Last post2019-12-03 10:46 +0000
Articles 11 — 6 participants

Back to article view | Back to fr.comp.lang.php


Contents

  Qu'est-ce qui empêche un script php de s'écuter en CRON ? Didier <dbnospam@invalid.fr> - 2019-09-24 16:41 +0200
    Re: Qu'est-ce qui empeche un script php de s'executer en CRON ? Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> - 2019-09-24 12:18 -0400
      Re: Qu'est-ce qui empeche un script php de s'executer en CRON ? Didier <dbnospam@invalid.fr> - 2019-09-24 20:18 +0200
        Re: Qu'est-ce qui empeche un script php de s'executer en CRON ? Olivier Miakinen <om+news@miakinen.net> - 2019-09-24 20:26 +0200
          Re: Qu'est-ce qui empeche un script php de s'executer en CRON ? Olivier Miakinen <om+news@miakinen.net> - 2019-09-24 20:29 +0200
    Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Olivier Miakinen <om+news@miakinen.net> - 2019-09-24 18:33 +0200
      Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Didier <dbnospam@invalid.fr> - 2019-09-24 20:30 +0200
        Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Olivier Miakinen <om+news@miakinen.net> - 2019-09-24 20:31 +0200
        Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Lulu <lulu042@fry.fr.invalid> - 2019-12-03 00:22 +0100
          Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Didier <nospam@invalid.fr> - 2019-12-03 09:34 +0100
            Re: Qu'est-ce qui empêche un script php de s'écuter en CRON ? Jo Engo <yl@icite.fr> - 2019-12-03 10:46 +0000

#3146 — Qu'est-ce qui empêche un script php de s'écuter en CRON ?

FromDidier <dbnospam@invalid.fr>
Date2019-09-24 16:41 +0200
SubjectQu'est-ce qui empêche un script php de s'écuter en CRON ?
Message-ID<qmd9sk$u7r$1@gioia.aioe.org>
Bonjour,
J'ai un script PHP appelé par une tâche CRON. Tout va bien comme prévu.
A la fin de ce script (dédié à faire des sauvegardes de bases MySQL vers 
des fichiers .csv), je rajoute deux commandes "copy" toutes simples.
Si je lance ce script à la main, il s'éxécute bien en entier.
Si je laisse faire la tâche CRON, seule la première partie, qui marchait 
bien initialement, s'éxécute, mais pas les deux commandes "copy" rajoutées.
Je sèche, et si quelqu'un voulait bien me donner un coup de pouce ...
Je suis sur un RaspBerry PI 3+, sous Jessie.
Merci.
Didier.

[toc] | [next] | [standalone]


#3147 — Re: Qu'est-ce qui empeche un script php de s'executer en CRON ?

FromDenis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid>
Date2019-09-24 12:18 -0400
SubjectRe: Qu'est-ce qui empeche un script php de s'executer en CRON ?
Message-ID<megkoetsr7lf223keeb9g2mof8euv2ucjd@4ax.com>
In reply to#3146
Le Tue, 24 Sep 2019 16:41:26 +0200, Didier <dbnospam@invalid.fr>
écrivait dans fr.comp.lang.php:

>Bonjour,
>J'ai un script PHP appelé par une tâche CRON. Tout va bien comme prévu.
>A la fin de ce script (dédié à faire des sauvegardes de bases MySQL vers 
>des fichiers .csv), je rajoute deux commandes "copy" toutes simples.
>Si je lance ce script à la main, il s'éxécute bien en entier.
>Si je laisse faire la tâche CRON, seule la première partie, qui marchait 
>bien initialement, s'éxécute, mais pas les deux commandes "copy" rajoutées.
>Je sèche, et si quelqu'un voulait bien me donner un coup de pouce ...
>Je suis sur un RaspBerry PI 3+, sous Jessie.

C'est la commande system ? Il faut peut-être tout bonnement changer
le dossier actif avant de faire les copies ?


Denis

[toc] | [prev] | [next] | [standalone]


#3149 — Re: Qu'est-ce qui empeche un script php de s'executer en CRON ?

FromDidier <dbnospam@invalid.fr>
Date2019-09-24 20:18 +0200
SubjectRe: Qu'est-ce qui empeche un script php de s'executer en CRON ?
Message-ID<qmdmje$r1b$1@gioia.aioe.org>
In reply to#3147
Le 24/09/2019 à 18:18, Denis Beauregard a écrit :
> Le Tue, 24 Sep 2019 16:41:26 +0200, Didier <dbnospam@invalid.fr>
> écrivait dans fr.comp.lang.php:
> 
>> Bonjour,
>> J'ai un script PHP appelé par une tâche CRON. Tout va bien comme prévu.
>> A la fin de ce script (dédié à faire des sauvegardes de bases MySQL vers
>> des fichiers .csv), je rajoute deux commandes "copy" toutes simples.
>> Si je lance ce script à la main, il s'éxécute bien en entier.
>> Si je laisse faire la tâche CRON, seule la première partie, qui marchait
>> bien initialement, s'éxécute, mais pas les deux commandes "copy" rajoutées.
>> Je sèche, et si quelqu'un voulait bien me donner un coup de pouce ...
>> Je suis sur un RaspBerry PI 3+, sous Jessie.
> 
> C'est la commande system ? Il faut peut-être tout bonnement changer
> le dossier actif avant de faire les copies ?
> 
> 
> Denis
> 
Bonjour, et merci.
non, je me sius mal exprimé, ce n'est pas une commande copy, mais 
l'instruction php copy.
Voici les lignes qu ne s'éxécutent pas :
$rep="/media/cle-usb/";
copy("Comptes.txt",$rep."Comptes.txt");

Didier.

[toc] | [prev] | [next] | [standalone]


#3150 — Re: Qu'est-ce qui empeche un script php de s'executer en CRON ?

FromOlivier Miakinen <om+news@miakinen.net>
Date2019-09-24 20:26 +0200
SubjectRe: Qu'est-ce qui empeche un script php de s'executer en CRON ?
Message-ID<qmdn51$22ja$1@cabale.usenet-fr.net>
In reply to#3149
Le 24/09/2019 à 20:18, Didier répondait à Denis Beauregard :
>> 
>> C'est la commande system ? Il faut peut-être tout bonnement changer
>> le dossier actif avant de faire les copies ?
>> 
> non, je me sius mal exprimé, ce n'est pas une commande copy, mais 
> l'instruction php copy.

D'accord. Ceci, donc :
<https://www.php.net/manual/en/function.copy.php>

> Voici les lignes qu ne s'éxécutent pas :
> $rep="/media/cle-usb/";
> copy("Comptes.txt",$rep."Comptes.txt");

Tu as bien mis un chemin absolu pour la destination (à savoir
/media/cle-usb/Comptes.txt) mais pas pour la source (c'est
seulement Comptes.txt). Es-tu sûr que le répertoire courant
est bien celui que tu crois, quand le script est lancé par
cron ?


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#3152 — Re: Qu'est-ce qui empeche un script php de s'executer en CRON ?

FromOlivier Miakinen <om+news@miakinen.net>
Date2019-09-24 20:29 +0200
SubjectRe: Qu'est-ce qui empeche un script php de s'executer en CRON ?
Message-ID<qmdnak$22ja$2@cabale.usenet-fr.net>
In reply to#3150
Le 24/09/2019 à 20:26, je demandais à Didier :
> 
> Tu as bien mis un chemin absolu pour la destination (à savoir
> /media/cle-usb/Comptes.txt) mais pas pour la source (c'est
> seulement Comptes.txt). Es-tu sûr que le répertoire courant
> est bien celui que tu crois, quand le script est lancé par
> cron ?

Voir les commandes getcwd() et chdir() :
<https://www.php.net/manual/en/book.dir.php>


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#3148

FromOlivier Miakinen <om+news@miakinen.net>
Date2019-09-24 18:33 +0200
Message-ID<qmdgha$1rll$1@cabale.usenet-fr.net>
In reply to#3146
Bonjour,

Le 24/09/2019 à 16:41, Didier a écrit :
> Bonjour,
> J'ai un script PHP appelé par une tâche CRON. Tout va bien comme prévu.
> A la fin de ce script (dédié à faire des sauvegardes de bases MySQL vers 
> des fichiers .csv), je rajoute deux commandes "copy" toutes simples.
> Si je lance ce script à la main, il s'éxécute bien en entier.
> Si je laisse faire la tâche CRON, seule la première partie, qui marchait 
> bien initialement, s'éxécute, mais pas les deux commandes "copy" rajoutées.
> Je sèche, et si quelqu'un voulait bien me donner un coup de pouce ...
> Je suis sur un RaspBerry PI 3+, sous Jessie.

Je ne connais pas le Raspberry PI, mais je vais supposer que ça
fonctionne comme un GNU/Linux. Ceci étant posé, voici quelques
suggestions.

1) Quand tu lances PHP et le script via CRON, tu n'as pas les mêmes
   droits d'accès que quand tu le lances à la main.

-> Essaye de copier dans un répertoire dont les droits sont 777
   (écriture autorisée pour tout le monde).

2) Tu copies en donnant un chemin relatif « truc/chose » alors que
   le répertoire courant n'est pas le même quand tu le lances via
   CRON.

-> Essaye de copier vers un chemin absolu « /machin/truc/chose ».

3) Ta commande "copy" toute simple est un script maison qui appelle
   la commande standard /bin/cp, mais elle n'est plus dans le PATH
   quand tu l'appelles par CRON.

-> Essaye d'utiliser la commande standard, avec son chemin d'accès
   complet « /bin/cp ».


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#3151

FromDidier <dbnospam@invalid.fr>
Date2019-09-24 20:30 +0200
Message-ID<qmdna3$ulc$1@gioia.aioe.org>
In reply to#3148
Le 24/09/2019 à 18:33, Olivier Miakinen a écrit :
> Bonjour,
> 
> Le 24/09/2019 à 16:41, Didier a écrit :
>> Bonjour,
>> J'ai un script PHP appelé par une tâche CRON. Tout va bien comme prévu.
>> A la fin de ce script (dédié à faire des sauvegardes de bases MySQL vers
>> des fichiers .csv), je rajoute deux commandes "copy" toutes simples.
>> Si je lance ce script à la main, il s'éxécute bien en entier.
>> Si je laisse faire la tâche CRON, seule la première partie, qui marchait
>> bien initialement, s'éxécute, mais pas les deux commandes "copy" rajoutées.
>> Je sèche, et si quelqu'un voulait bien me donner un coup de pouce ...
>> Je suis sur un RaspBerry PI 3+, sous Jessie.
> 
> Je ne connais pas le Raspberry PI, mais je vais supposer que ça
> fonctionne comme un GNU/Linux.
Oui, effectivement, basé sur Debian.
  Ceci étant posé, voici quelques
> suggestions.
> 
> 1) Quand tu lances PHP et le script via CRON, tu n'as pas les mêmes
>     droits d'accès que quand tu le lances à la main.
> 
Le script contient tout un bloc d'instructions qui s'éxécutent bien; j'y 
ai juste rajouté à la fin :
$rep="/media/cle-usb/";
copy("Comptes.txt",$rep."Comptes.txt");
Cette "copy" ne s'exécute pas.
Je pense donc que les droits sont OK (j'ai pas mal galéré il y a qq mois 
sur ce point pour faire fonctionner ce script via CRON, mais demuis ce 
temps-là il me sauvegarde mes tables MySQL fidèlement toutes les nuits à 
00:00).
> -> Essaye de copier dans un répertoire dont les droits sont 777
>     (écriture autorisée pour tout le monde).
> 
> 2) Tu copies en donnant un chemin relatif « truc/chose » alors que
>     le répertoire courant n'est pas le même quand tu le lances via
>     CRON.
> 
Eh oui ! C'est bien le chemin relatif qui pose problème dans le CRON.
Une fois dit, ça paraît évident, mais c'est mieux quand quand on a un 
petit coup de main là-dessus.
Chapeau bas ! Je viens de vérifier, c'est nickel.
Un très grand merci !
Didier.

[toc] | [prev] | [next] | [standalone]


#3153

FromOlivier Miakinen <om+news@miakinen.net>
Date2019-09-24 20:31 +0200
Message-ID<qmdndd$22ja$3@cabale.usenet-fr.net>
In reply to#3151
Le 24/09/2019 à 20:30, Didier a écrit :
>> 
> Eh oui ! C'est bien le chemin relatif qui pose problème dans le CRON.
> Une fois dit, ça paraît évident, mais c'est mieux quand quand on a un 
> petit coup de main là-dessus.

Et donc, tu peux oublier ma réponse de 20 h 29.

> Chapeau bas ! Je viens de vérifier, c'est nickel.
> Un très grand merci !

:-)


-- 
Olivier Miakinen

[toc] | [prev] | [next] | [standalone]


#3158

FromLulu <lulu042@fry.fr.invalid>
Date2019-12-03 00:22 +0100
Message-ID<slrnqub756.h8m.lulu042@Minty.Rock-n-Roll.org>
In reply to#3151
Le 24-09-2019, Didier <dbnospam@invalid.fr> a écrit :
>  Le 24/09/2019 à 18:33, Olivier Miakinen a écrit :
>> Le 24/09/2019 à 16:41, Didier a écrit :

>>> Bonjour,
>>> J'ai un script PHP appelé par une tâche CRON. Tout va bien comme
>>> prévu.
>>> A la fin de ce script (dédié à faire des sauvegardes de bases MySQL
>>> vers des fichiers .csv), je rajoute deux commandes "copy" toutes
>>> simples.
>>> Si je lance ce script à la main, il s'éxécute bien en entier.
>>> Si je laisse faire la tâche CRON, seule la première partie, qui
>>> marchait bien initialement, s'éxécute, mais pas les deux commandes
>>> "copy" rajoutées.
>>> Je sèche, et si quelqu'un voulait bien me donner un coup de pouce
>>> ...
>>> Je suis sur un RaspBerry PI 3+, sous Jessie.
>> 
>> Je ne connais pas le Raspberry PI, mais je vais supposer que ça
>> fonctionne comme un GNU/Linux.

>  Oui, effectivement, basé sur Debian.

>> Ceci étant posé, voici quelques suggestions.
>> 
>> 1) Quand tu lances PHP et le script via CRON, tu n'as pas les mêmes
>>     droits d'accès que quand tu le lances à la main.
> 
>  Le script contient tout un bloc d'instructions qui s'éxécutent bien; j'y 
>  ai juste rajouté à la fin :
>  $rep="/media/cle-usb/";
>  copy("Comptes.txt",$rep."Comptes.txt");
>  Cette "copy" ne s'exécute pas.

Elle s'exécute.
Mais comme tu ne regardes pas la sortie d'erreur, tu ne vois pas ce qui
cloche...
(En même temps que j'écris ça, je ne me souviens plus de comment faire
pour récupérer le code d'erreur ;-)

>  Je pense donc que les droits sont OK (j'ai pas mal galéré il y a qq
>  mois sur ce point pour faire fonctionner ce script via CRON, mais
>  demuis ce temps-là il me sauvegarde mes tables MySQL fidèlement
>  toutes les nuits à 00:00).

>> -> Essaye de copier dans un répertoire dont les droits sont 777
>>     (écriture autorisée pour tout le monde).
>> 
>> 2) Tu copies en donnant un chemin relatif « truc/chose » alors que
>>     le répertoire courant n'est pas le même quand tu le lances via
>>     CRON.
> 
>  Eh oui ! C'est bien le chemin relatif qui pose problème dans le CRON.
>  Une fois dit, ça paraît évident, mais c'est mieux quand quand on a un 
>  petit coup de main là-dessus.
>  Chapeau bas ! Je viens de vérifier, c'est nickel.
>  Un très grand merci !
>  Didier.

Classique !
Mais ton message est utile, au moins pour ceux (dont moi) qui ne
penseraient pas à regarder systématiquement la sortie d'une commande
(standard ET erreur). 

[toc] | [prev] | [next] | [standalone]


#3159

FromDidier <nospam@invalid.fr>
Date2019-12-03 09:34 +0100
Message-ID<qs56ms$1gih$1@gioia.aioe.org>
In reply to#3158
Le 03/12/2019 à 00:22, Lulu a écrit :
> Le 24-09-2019, Didier <dbnospam@invalid.fr> a écrit :
>>   Le 24/09/2019 à 18:33, Olivier Miakinen a écrit :
>>> Le 24/09/2019 à 16:41, Didier a écrit :
> 
>>>> Bonjour,
>>>> J'ai un script PHP appelé par une tâche CRON. Tout va bien comme
>>>> prévu.
>>>> A la fin de ce script (dédié à faire des sauvegardes de bases MySQL
>>>> vers des fichiers .csv), je rajoute deux commandes "copy" toutes
>>>> simples.
>>>> Si je lance ce script à la main, il s'éxécute bien en entier.
>>>> Si je laisse faire la tâche CRON, seule la première partie, qui
>>>> marchait bien initialement, s'éxécute, mais pas les deux commandes
>>>> "copy" rajoutées.
>>>> Je sèche, et si quelqu'un voulait bien me donner un coup de pouce
>>>> ...
>>>> Je suis sur un RaspBerry PI 3+, sous Jessie.
>>>
>>> Je ne connais pas le Raspberry PI, mais je vais supposer que ça
>>> fonctionne comme un GNU/Linux.
> 
>>   Oui, effectivement, basé sur Debian.
> 
>>> Ceci étant posé, voici quelques suggestions.
>>>
>>> 1) Quand tu lances PHP et le script via CRON, tu n'as pas les mêmes
>>>      droits d'accès que quand tu le lances à la main.
>>
>>   Le script contient tout un bloc d'instructions qui s'éxécutent bien; j'y
>>   ai juste rajouté à la fin :
>>   $rep="/media/cle-usb/";
>>   copy("Comptes.txt",$rep."Comptes.txt");
>>   Cette "copy" ne s'exécute pas.
> 
> Elle s'exécute.
> Mais comme tu ne regardes pas la sortie d'erreur, tu ne vois pas ce qui
> cloche...
> (En même temps que j'écris ça, je ne me souviens plus de comment faire
> pour récupérer le code d'erreur ;-)
> 
>>   Je pense donc que les droits sont OK (j'ai pas mal galéré il y a qq
>>   mois sur ce point pour faire fonctionner ce script via CRON, mais
>>   demuis ce temps-là il me sauvegarde mes tables MySQL fidèlement
>>   toutes les nuits à 00:00).
> 
>>> -> Essaye de copier dans un répertoire dont les droits sont 777
>>>      (écriture autorisée pour tout le monde).
>>>
>>> 2) Tu copies en donnant un chemin relatif « truc/chose » alors que
>>>      le répertoire courant n'est pas le même quand tu le lances via
>>>      CRON.
>>
>>   Eh oui ! C'est bien le chemin relatif qui pose problème dans le CRON.
>>   Une fois dit, ça paraît évident, mais c'est mieux quand quand on a un
>>   petit coup de main là-dessus.
>>   Chapeau bas ! Je viens de vérifier, c'est nickel.
>>   Un très grand merci !
>>   Didier.
> 
> Classique !
> Mais ton message est utile, au moins pour ceux (dont moi) qui ne
> penseraient pas à regarder systématiquement la sortie d'une commande
> (standard ET erreur).
> Bjr,
je ne sais pas non plus où regarder les logs d'erreurs de ce processus 
(j'y ai bien pensé, et j'ai cherché).
Didier.

[toc] | [prev] | [next] | [standalone]


#3160

FromJo Engo <yl@icite.fr>
Date2019-12-03 10:46 +0000
Message-ID<pan$8088a$4ad6afe8$63eaefd5$45408ef6@icite.fr>
In reply to#3159
Le Tue, 03 Dec 2019 09:34:41 +0100, Didier a écrit :

> je ne sais pas non plus où regarder les logs d'erreurs de ce processus
> (j'y ai bien pensé, et j'ai cherché).

ça n'est pas cron qui gère ça ? Un petit man cron pje dit ça mais je ne 
l'ai pas encore fait) autrement tout part sur la console

en agissant sur la crontab quelque chose comme :

php /path/ton-script |tee /ton/home/scripts/sortie 2> /ton/home/scripts/sortie-erreur



-- 
Travailles au flash avec un Canon, et tu comprendras vite que le mode 
manuel est ta planche de salut ! ;o))
	-+- Pierre, sur fr.rec.photo -+-

[toc] | [prev] | [standalone]


Back to top | Article view | fr.comp.lang.php


csiph-web