Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.php > #3146 > unrolled thread
| Started by | Didier <dbnospam@invalid.fr> |
|---|---|
| First post | 2019-09-24 16:41 +0200 |
| Last post | 2019-12-03 10:46 +0000 |
| Articles | 11 — 6 participants |
Back to article view | Back to fr.comp.lang.php
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
| From | Didier <dbnospam@invalid.fr> |
|---|---|
| Date | 2019-09-24 16:41 +0200 |
| Subject | Qu'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]
| From | Denis Beauregard <denis.b-at-francogene.com.invalid@nospam.com.invalid> |
|---|---|
| Date | 2019-09-24 12:18 -0400 |
| Subject | Re: 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]
| From | Didier <dbnospam@invalid.fr> |
|---|---|
| Date | 2019-09-24 20:18 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2019-09-24 20:26 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2019-09-24 20:29 +0200 |
| Subject | Re: 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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2019-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]
| From | Didier <dbnospam@invalid.fr> |
|---|---|
| Date | 2019-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]
| From | Olivier Miakinen <om+news@miakinen.net> |
|---|---|
| Date | 2019-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]
| From | Lulu <lulu042@fry.fr.invalid> |
|---|---|
| Date | 2019-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]
| From | Didier <nospam@invalid.fr> |
|---|---|
| Date | 2019-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]
| From | Jo Engo <yl@icite.fr> |
|---|---|
| Date | 2019-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