22
0
Fork 0

relecture en cours

This commit is contained in:
gcolpart 2017-06-18 13:20:42 +02:00
parent 2cd5a2a6f9
commit 5075407fd6
1 changed files with 25 additions and 5 deletions

View File

@ -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.