Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
cron [Le 28/05/2019, 19:35] 193.250.138.66 [Autres Considérations] |
cron [Le 17/04/2020, 14:26] 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> | ||
Ligne 180: | 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.// |