Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
cron [Le 05/05/2019, 11:41]
nicolas84 [Comment fonctionne Cron ?]
cron [Le 17/04/2020, 14:26] (Version actuelle)
krodelabestiole [Autres Considérations] path
Ligne 129: Ligne 129:
 Remarque : cette commande édite directement le fichier // /​var/​spool/​cron/​crontabs/<​utilisateur>//​ (avec ici root comme utilisateur). Remarque : cette commande édite directement le fichier // /​var/​spool/​cron/​crontabs/<​utilisateur>//​ (avec ici root comme utilisateur).
  
-Selon les commandes à exécuter, vous devrez changer la variable //PATH// des utilisateurs ayant les droits //root// en mettant la ligne suivante au dessus de leurs fichiers **crontab** : 
- 
-<​code>​ 
-PATH=/​usr/​sbin:/​usr/​bin:/​sbin:/​bin 
-</​code>​ 
- 
- 
-Il est aussi important de noter que le fichier **crontab** de l'​utilisateur système ''​root''​ peut être édité avec l'​instruction ​ 
-<​code>​ sudo crontab -e </​code>​. ​ 
 Dans ce cas il ne faut pas préciser l'​utilisateur sinon ''​root''​ est compris comme une instruction à exécuter et il ne se passera rien. Dans ce cas il ne faut pas préciser l'​utilisateur sinon ''​root''​ est compris comme une instruction à exécuter et il ne se passera rien.
   * Bon : <​code>​@midnight /​sbin/​shutdown -r now></​code>​   * Bon : <​code>​@midnight /​sbin/​shutdown -r now></​code>​
Ligne 143: Ligne 134:
  
 (Vérifié avec ubuntu-server 14.04.1, xubuntu 14.04.1 et xubuntu 16.0.1) (Vérifié avec ubuntu-server 14.04.1, xubuntu 14.04.1 et xubuntu 16.0.1)
 +
 +
 +<note important>​
 +Une tâche cron est exécutée dans un shell non connecté (non-login) et non interactif. Les variables d'​environnement habituelles et en particulier PATH ne sont pas connues.
 +
 +Il faut donc soit mettre les emplacements complets des exécutables dans les commandes et les scripts appelés par cron, soit définir PATH dans le fichier crontab :
 +<​code>​
 +PATH=/​usr/​local/​sbin:/​usr/​local/​bin:/​sbin:/​bin:/​usr/​sbin:/​usr/​bin
 +</​code>​
 +</​note>​
  
 Il est important de vérifier que vos travaux dans **cron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la **crontab** pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats, avant de mettre la synchronisation de cette tâche à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échecs, par exemple : Il est important de vérifier que vos travaux dans **cron** fonctionnent comme prévu. Une méthode pour faire un test est de paramétrer le travail dans la **crontab** pour qu'il se fasse quelques minutes plus tard et de vérifier les résultats, avant de mettre la synchronisation de cette tâche à la bonne heure. Vous pouvez également trouver utile de mettre les résultats des commandes dans un fichier texte qui notent les succès ou les échecs, par exemple :
Ligne 164: Ligne 165:
 </​code> ​ </​code> ​
  
-Pour plus d'​information,​ regardez les pages du //man// pour **cron** et **crontab** (le //man// est détaillé sur [[:​tutoriel:​console_ligne_de_commande|les commandes basiques]]). Si votre machine est régulièrement éteinte, vous pouvez également être intéressé par **at** (fait partie de l'​installation de base d'​Ubuntu) et **anacron** (à trouver dans le dépôt `universe repository`) qui fournit d'​autres approches aux tâches programmées.+Pour plus d'​information,​ regardez les pages du //man// pour **cron** et **crontab** (le //man// est détaillé sur [[:​tutoriel:​console_ligne_de_commande|les commandes basiques]]). Si votre machine est régulièrement éteinte, vous pouvez également être intéressé par **at** (fait partie de l'​installation de base d'​Ubuntu) et **[[anacron|anacron]]** (installé par défaut) qui fournit d'​autres approches aux tâches programmées.
  
 **NOTE:​** ​ **NOTE:​** ​
 pour modifier crontab directement (par un script par exemple) ​ pour modifier crontab directement (par un script par exemple) ​
 <​code>​ <​code>​
-crontab ​<​(crontab -l ; echo "0 * * * * echo plop")+crontab <​(crontab -l ; echo "0 * * * * echo plop")
 </​code> ​ </​code> ​
  
- 
-<​note>​Cron,​ comme [[anacron]] devraient être remplacés par [[fcron]], plus souple et remplissant les fonctions des deux logiciels.\\ ​ 
-18/07/2014 : une version stable de fcron est disponible [[http://​fcron.free.fr/​]]</​note>​ 
 ===== Liens ===== ===== Liens =====
   * [[https://​help.ubuntu.com/​community/​CronHowto]] (EN)   * [[https://​help.ubuntu.com/​community/​CronHowto]] (EN)
Ligne 183: Ligne 181:
   * [[:​Anacron]] : planificateur de commande « anachronique »   * [[:​Anacron]] : planificateur de commande « anachronique »
   * [[fcron]] : programmer des tâches devant être exécutées/​   * [[fcron]] : programmer des tâches devant être exécutées/​
 +  * [[https://​askubuntu.com/​questions/​23009/​why-crontab-scripts-are-not-working|why crontab scripts are not working?]]
  
 ---- ----
  
 //​Contributeurs : Martigo, [[:​contributeurs|Les contributeurs d'​Ubuntu-fr]],​ l'​entreprise Simplistay.//​ //​Contributeurs : Martigo, [[:​contributeurs|Les contributeurs d'​Ubuntu-fr]],​ l'​entreprise Simplistay.//​
  • cron.1557049285.txt.gz
  • Dernière modification: Le 05/05/2019, 11:41
  • par nicolas84