Configuration de la crontab
Modérateur : Francois
Configuration de la crontab
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
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
Re: Configuration de la crontab
Salut, tu as plusieurs possibilité soit a la place de
tu met si tu peu lancer le script en ligne de commande
ou ceci si tu veux y accéder a travers le serveur web
Code : Tout sélectionner
*/5 * * * * /home/pi/envoi_notification.php
Code : Tout sélectionner
*/5 * * * * php /home/pi/envoi_notification.php
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.
Raspberry pi : 2B OS : Raspbian
Se tromper est humain, Vraiment foutre la merde nécessite le mot de passe de root.
-
- Administrateur
- Messages : 3233
- Enregistré le : mer. 17 sept. 2014 18:12
- Localisation : Seine et Marne
Re: Configuration de la crontab
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.
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.
Re: Configuration de la crontab
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 :
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.
Donc, soit tu fais comme Manfraid et tu précises dans la ligne de commande de la crontab que tu veux utiliser le PHP :
Soit tu exécutes ta page PHP comme si elle était appelée d'un navigateur :Manfraid a écrit :tu met si tu peu lancer le script en ligne de commandeCode : Tout sélectionner
*/5 * * * * php /home/pi/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é :Manfraid a écrit : ou ceci si tu veux y accéder a travers le serveur webCode : Tout sélectionner
*/5 * * * * curl http://xxx.xxx.xxx.xxx/envoi_notification.php
Code : Tout sélectionner
#!/usr/bin/php
<?php
echo "hello world\n";
?>
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
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir
Re: Configuration de la crontab
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
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
Re: Configuration de la crontab
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
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
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir
-
- Raspinaute
- Messages : 248
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: Configuration de la crontab
Il a donc bien installé un serveur web, et son fichier est à la racine de son serveur webmicsec 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)
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
Code : Tout sélectionner
#!/usr/bin/php5
<?php
echo date('j/m/Y H:i:s')."\n";
?>
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
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net
Re: Configuration de la crontab
Oups, j'ai lu de travers.
En tout, cas, avec tes explications, ça devrait marcher.
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
RPi 3 : framboise de test pour OSMC, OpenELEC, LibreELEC, Retrogaming
Stockage : ReadyNAS-RN102 2 x 4 To en miroir
Re: Configuration de la crontab
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 !
ç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 !
-
- Raspinaute
- Messages : 248
- Enregistré le : mar. 7 oct. 2014 09:46
- Localisation : Morsang / Orge - Essonne
- Contact :
Re: Configuration de la crontab
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
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
Raspberry - RFXTRX433 - Aeon Labs ZStick V2 - Domoticz
FreeBox v6
https://meteo.folcke.net
https://wiki.folcke.net