Configuration de la crontab

Vous venez de déballer votre Raspberry Pi et vous vous posez des questions ? C'est ici que ça se passe !

Modérateur : Francois

micsec
Messages : 16
Enregistré le : lun. 24 nov. 2014 18:25

Configuration de la crontab

Message par micsec » lun. 24 nov. 2014 18:53

bonjour,
j'essaie de configurer la fonction CRON pour réaliser automatiquement des tâches périodiquement. Je voudrais exécuter un programme PHP.
Je me suis inspiré du site suivant :
http://www.raspberrypi.org/documentatio ... ge/cron.md
contenu de ma table :
*/5 * * * * /home/pi/job.sh
*/5 * * * * /home/pi/envoi_notification.php

job.sh contient :
#!/bin/sh
date >> crontest.txt

Cette dernière tâche fonctionne bien, le fichier crontest.txt contient bien la date et l'heure en clair, une nouvelle ligne toutes les 5 minutes comme c'est configuré dans la table cron.

Par contre, la 2e ligne de la table cron (.... envoi_notification.php) ne fonctionne pas, alors que lorsque j'appelle ce programme PHP à partir de mon navigateur, ça fonctionne (http://xxx.xxx.xxx.xxx/envoi_notification.php)

Je pense que l'appel d'un php dans la table cron nécessite quelque chose pour que ça marche.

Quelqu'un a-t-il une idée ?
Merci d'avance

Avatar du membre
Manfraid
Modérateur
Messages : 1402
Enregistré le : ven. 3 oct. 2014 14:50
Contact :

Re: Configuration de la crontab

Message par Manfraid » lun. 24 nov. 2014 19:05

Salut, tu as plusieurs possibilité soit a la place de

Code : Tout sélectionner

*/5 * * * * /home/pi/envoi_notification.php
tu met si tu peu lancer le script en ligne de commande

Code : Tout sélectionner

*/5 * * * *  php /home/pi/envoi_notification.php
ou ceci si tu veux y accéder a travers le serveur web

Code : Tout sélectionner

*/5 * * * * curl http://xxx.xxx.xxx.xxx/envoi_notification.php
NAS : DIY OS Debian: DD250Go + 3x2To + 6To
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.

domi
Administrateur
Messages : 3233
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: Configuration de la crontab

Message par domi » lun. 24 nov. 2014 20:19

Bon, bien Manfraid a été plus rapide que moi ;-)
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Configuration de la crontab

Message par mikebzh44 » mar. 25 nov. 2014 11:25

Et oui, ton erreur est qu'en ne précisant pas avec quel exécutable / shell ton fichier PHP doit être exécuté, le RPi l'exécute avec le shell par défaut.

Donc, soit tu fais comme Manfraid et tu précises dans la ligne de commande de la crontab que tu veux utiliser le PHP :
Manfraid a écrit :tu met si tu peu lancer le script en ligne de commande

Code : Tout sélectionner

*/5 * * * *  php /home/pi/envoi_notification.php
Soit tu exécutes ta page PHP comme si elle était appelée d'un navigateur :
Manfraid a écrit : ou ceci si tu veux y accéder a travers le serveur web

Code : Tout sélectionner

*/5 * * * * curl http://xxx.xxx.xxx.xxx/envoi_notification.php
Soit, et c'est comme ça que je procède, tu précises en début de fichier PHP quel moteur d'exécution doit être utilisé :

Code : Tout sélectionner

#!/usr/bin/php
<?php
  echo "hello world\n";
?>
Et je change aussi les droits du fichier pour qu'il soit exécutable (chmod u+x nomdufichier.php), mais c'est peut-être inutile.
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

micsec
Messages : 16
Enregistré le : lun. 24 nov. 2014 18:25

Re: Configuration de la crontab

Message par micsec » mar. 25 nov. 2014 16:26

merci des réponses, hélas ça ne marche toujours pas.
j'ai noté qu'il y a plusieurs environnement CRON
1) crontab -e 'en restant dans la racine /home/pi/
2) sudo nano /etc/crontab

J'ai essayé dans les 2 cas avec les 2 solutions que vous me proposez.
a) */5 * * * * php /home/pi/envoi_notification.php
b) */5 * * * * curl http://xxx.xxx.xxx.xxx/envoi_notification.php

En plus dans la méthode 2), j'ai mis pour tester "*/5 * * * * /home/pi/job.sh" où job.sh alimente un fichier avec la date (date >> crontest.txt). Lorsque l'appel du PHP est présent dans le crontab, la commande job.sh ne marche plus. Il semble que l'appel du PHP met le crontab en erreur.

Qu'en pensez-vous ?
merci

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Configuration de la crontab

Message par mikebzh44 » mar. 25 nov. 2014 16:40

Et oui, il y a une crontab par utilisateur ;)

crontab -e en étant connecté avec le user pi = crontab du user pi
sudo crontab -e = crontab du super-user root

Déjà, tu peux te limiter à la crontab du user pi

Tu édites ton fichier /home/pi/envoi_notification.php
Tu rajoutes la ligne en début de fichier : #!/usr/bin/php
Tu marques le fichier comme exécutable : chmod u+x /home/pi/envoi_notification.php
Déjà, si tu exécutes /home/pi/envoi_notification.php, ça doit marcher

Sinon, si tu mets cette ligne :

*/5 * * * * curl http://xxx.xxx.xxx.xxx/envoi_notification.php

Cela signifie que ton fichier envoi_notification.php est dans le repertoire www de ton serveur web, et non à la racine du compte utilisateur pi.
Mais je doute que tu ais installé un serveur web sur ton RPi ;)
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

mike913
Raspinaute
Messages : 247
Enregistré le : mar. 7 oct. 2014 09:46
Localisation : Morsang / Orge - Essonne
Contact :

Re: Configuration de la crontab

Message par mike913 » mar. 25 nov. 2014 17:08

micsec a écrit : Par contre, la 2e ligne de la table cron (.... envoi_notification.php) ne fonctionne pas, alors que lorsque j'appelle ce programme PHP à partir de mon navigateur, ça fonctionne (http://xxx.xxx.xxx.xxx/envoi_notification.php)
Il a donc bien installé un serveur web, et son fichier est à la racine de son serveur web
Donc le chemin indiqué dans crontab est erroné. En principe le chemin est: /var/www/envoi_notification.php
De plus sur certaines installations l' interpréteur php est situé en /usr/bin/php5 c'est le c'est le cas chez moi. Dans ce cas

Code : Tout sélectionner

*/5	* 	* 	* 	* 	/usr/bin/php5 /var/www/envoi_notification.php 
ou modifier le fichier comme suit:

Code : Tout sélectionner

#!/usr/bin/php5
<?php
echo date('j/m/Y H:i:s')."\n";
?>
et le rendre exécutable et voila le résultat:

Code : Tout sélectionner

[17:06:28]  michel@raspi-48:~/scripts$ ./test.php
25/11/2014 17:06:37
[17:06:37]  michel@raspi-48:~/scripts$
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net

mikebzh44
Raspinaute
Messages : 359
Enregistré le : ven. 19 sept. 2014 09:47

Re: Configuration de la crontab

Message par mikebzh44 » mar. 25 nov. 2014 17:11

Oups, j'ai lu de travers.

En tout, cas, avec tes explications, ça devrait marcher.
RPi 3 sous Raspbian : connecté au compteur EDF pour la téléinfo
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir

micsec
Messages : 16
Enregistré le : lun. 24 nov. 2014 18:25

Re: Configuration de la crontab

Message par micsec » mar. 25 nov. 2014 18:17

merci à vous 2
ça ne marche toujours pas, il doit y avoir un pb dans mon système, un pb de config ou autre ! C'est vrai que je débute en Linux...
j'ai saisi et essayé le petit prog php et lorsque je le lance j'ai l'erreur :
-bash: testphp.php : commande introuvable

Notez que j'ai lancé la commande dans /home/pi/

Je crois que je vais devoir me former un peu plus sur Linux !

mike913
Raspinaute
Messages : 247
Enregistré le : mar. 7 oct. 2014 09:46
Localisation : Morsang / Orge - Essonne
Contact :

Re: Configuration de la crontab

Message par mike913 » mar. 25 nov. 2014 18:37

Ce qui compte se n'est pas ou tu te trouve mais ou se trouve ton script: envoi_notification.php
s'il est accessible par l' adresse http://adresseIPRaspi/envoi_notification.php c'est qu'il se trouve dans le répertoire /var/www/
dans putty essaye les 2 commandes suivantes:
1- /usr/bin/php5 /var/www/envoi_notification.php
2- /usr/bin/php /var/www/envoi_notification.php
et indique nous les messages d' erreurs.

et donne nous le contenu de ton fichier envoi_notification.php
DS712+ 2x Western Digital WD10EADS-00L 1000 GB (SHR) - Firmware: DSM 6.1.6-15266
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net

Répondre

Retourner vers « Débutants »