From 5075407fd6c19d0173f0df58c80c505e9bbacb77 Mon Sep 17 00:00:00 2001 From: gcolpart Date: Sun, 18 Jun 2017 13:20:42 +0200 Subject: [PATCH] relecture en cours --- HowtoCron.md | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/HowtoCron.md b/HowtoCron.md index 15c20865..c43d84af 100644 --- a/HowtoCron.md +++ b/HowtoCron.md @@ -13,7 +13,6 @@ En général le paquet **cron** est installé et le service tourne déjà : # systemctl status cron ● cron.service - Regular background program processing daemon Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled) - Active: active (running) since Thu 2017-05-18 14:37:27 CEST; 1 months 0 days ago Docs: man:cron(8) Main PID: 492 (cron) CGroup: /system.slice/cron.service @@ -34,15 +33,26 @@ PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) ~~~ -On trouve notamment des dates fixées pour les actions définies dans les répertoires `/etc/cron.{hourly,daily,weekly,monthly}`. +On trouve notamment des dates fixées pour les actions définies dans les répertoires `/etc/cron.{hourly,daily,weekly,monthly}` : nous conseillons de modifier ces horaires fixes, pour éviter des déclenchements simultanés sur plusieurs serveurs. -Nous conseillons de modifier ces horaires fixes, pour éviter des déclenchements simultanés à la même minute sur plusieurs serveurs. - -On peut également modifier certaines options via le fichier `/etc/default/cron`, notamment la journalisation : par défaut `-L 5` enregistrement le démarrage de chaque cron et les éventuelles erreurs, on peut passer à `-L 15` pour avoir un maximum d'informations notamment la date de fin d'une commande. +On peut également modifier certaines options via le fichier `/etc/default/cron`, notamment la journalisation : par défaut `-L 5` enregistre le démarrage de chaque cron et les éventuelles erreurs, on peut passer à `-L 15` pour avoir un maximum d'informations notamment la date de fin de chaque cron. ## Utilisation +### /etc/cron.{hourly,daily,weekly,monthly} et /etc/cron.d/ + +Pour lancer un script à une date fixée par le système, il suffit de le placer dans l'un des répertoires `/etc/cron.{hourly,daily,weekly,monthly}` en fonction de la fréquence souhaitée ou dans `/etc/cron.d/` où l'on peut choisir une fréquence personnalisée. + +Attention, en cas d'erreur de syntaxe dans un script, tous les autres scripts du même répertoire ne seront pas lancés ! Il faut donc réserver cette utilisation à des scripts bien vérifiés (c'est notamment utilisé par les packages Debian). + +### /etc/crontab + + + + +### crontab -e + ### Détection d'erreurs @@ -80,3 +90,13 @@ ls /etc/cron.* crontab -l / -e @hourly @daily @weekly @monthly man 5 crontab + +## FAQ + +### Peut-on écrire un cron dans /etc/crontab ? + +Si vous ajoutez une ligne de cron dans `/etc/crontab` elle sera exécutée en _root_ : mais nous déconseillons fortement cette utilisation car ce fichier de configuration doit rester intact autant que possible, en général il faut éviter de lancer un cron en tant que _root_ et enfin la moindre erreur de syntaxe va provoquer le non lancement de tous les autres scripts ! + +### Changement d'heure + +En France, lors d'un changement d'heure d'été ou d'hiver, on peut imaginer qu'un script lancé entre 2h et 3h du matin se lancera deux fois ou zéro fois selon les cas. Mais sous Debian, lorsque *cron* détecte un saut important dans l'heure locale, il va prévenir ce comportement en lançant les crons qu'une seule fois (passage à l'heure d'hiver) ou juste après le changement d'heure (passage à l'heure d'été). Par précaution, nous évitons tout de même de mettre des crons entre 2h et 3h du matin. \ No newline at end of file