reformulation de certaines phrases pour être plus clair
This commit is contained in:
parent
92d52997d6
commit
081d043511
35
HowtoCron.md
35
HowtoCron.md
|
@ -3,13 +3,11 @@ categories: sysadmin web
|
|||
title: Howto Cron
|
||||
...
|
||||
|
||||
* man 5 crontab : <https://manpages.debian.org/jessie/cron/crontab.5.en.html>
|
||||
|
||||
Le service **cron** (diminutif de *crontab*, pour **c**h**ron**o **tab**le) est le planificateur de tâches standard sur les systèmes UNIX/Linux. Il permet le déclenchement de commandes à des dates récurrentes (à la minute près).
|
||||
Le service **cron** (diminutif de *crontab*, pour **c**h**ron**o **tab**le) est le planificateur de tâches standard sur les systèmes UNIX/Linux. Il permet le déclenchement de commandes à des dates récurrentes et à la minute près.
|
||||
|
||||
# Installation
|
||||
|
||||
En général le paquet **cron** est installé et le service tourne déjà :
|
||||
Très souvent, on le retrouve déjà installé :
|
||||
|
||||
~~~
|
||||
# systemctl status cron
|
||||
|
@ -21,9 +19,15 @@ En général le paquet **cron** est installé et le service tourne déjà :
|
|||
└─492 /usr/sbin/cron -f
|
||||
~~~
|
||||
|
||||
Sinon, la commande suivante permet de l'obtenir :
|
||||
|
||||
~~~
|
||||
apt install cron
|
||||
~~~
|
||||
|
||||
# Configuration
|
||||
|
||||
La configuration se trouve dans le fichier `/etc/crontab` :
|
||||
Les paramètres principaux sont définit dans le fichier `/etc/crontab` :
|
||||
|
||||
~~~
|
||||
SHELL=/bin/sh
|
||||
|
@ -43,26 +47,29 @@ 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}/` : nous conseillons de modifier ces horaires fixes, pour éviter des déclenchements simultanés sur plusieurs serveurs.
|
||||
On observera que :
|
||||
|
||||
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.
|
||||
- Le shell par défaut sera /bin/sh
|
||||
- Les tâches crons auront un accès facilité à l'ensemble de répertoires où se trouvent les programmes exécutables.
|
||||
- Des dates sont définies pour executer des actions inclus dans les répertoires dédiés `/etc/cron.*`.
|
||||
|
||||
D'autres options de configurations peuvent être pris en charge par défaut pour toutes les tâches crons via le fichier `/etc/default/cron`. Notamment en ce qui concerne le niveau de verbosité de la journalisation, définir des variables d'environnements, etc.
|
||||
|
||||
# Utilisation
|
||||
# Cas d'usage
|
||||
|
||||
## /etc/cron.{hourly,daily,weekly,monthly}/ et /etc/cron.d/
|
||||
## Les dossiers /etc/cron.*/ et /etc/cron.d/
|
||||
|
||||
Pour lancer un script en tant que _root_ à une date fixée par le système, il suffit de le rendre exécutable et de le placer dans l'un des répertoires `/etc/cron.{hourly,daily,weekly,monthly}/` en fonction de la fréquence souhaitée.
|
||||
Pour lancer un script à **une date précise** : il suffit de le rendre exécutable et de le placer dans l'un des répertoires `/etc/cron.*/` en fonction de la fréquence souhaitée.
|
||||
|
||||
Pour une fréquence personnalisée, on peut utiliser le répertoire `/etc/cron.d/` où il faudra indiquer en plus la fréquence et l'utilisateur qui doit lancer la commande, par exemple :
|
||||
Pour lancer un script à **une fréquence personnalisée** : il suffit de créer un nouveau fichier pour le placer dans `/etc/cron.d/` incluant une suite de paramètres pour indiquer la fréquence et l'utilisateur qui doit lancer la commande, par exemple :
|
||||
|
||||
~~~
|
||||
30 05 * * 0 www-data /usr/local/adm/savelog-weekly
|
||||
30 05 * * 0 www-data /usr/local/adm/savelog
|
||||
~~~
|
||||
|
||||
> **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).
|
||||
> Attention : En cas d'erreur de syntaxe dans un script, tous les autres tâches crons du même répertoire ne seront pas lancés ! Il faut donc réserver cette utilisation à des scripts bien vérifiés!
|
||||
|
||||
> **Attention** : Les noms de scripts contenant des points sont ignorés par cron. On pourra par exemple utiliser cette particularité pour désactiver un script, en ajoutant .old ou .disabled à la fin de son nom.
|
||||
> Attention : Les noms de scripts contenant des points sont ignorés. Cette particularité est utile pour désactiver un script en ajoutant .disabled comme extension.
|
||||
|
||||
|
||||
## crontab -e
|
||||
|
|
Loading…
Reference in New Issue