22
0
Fork 0

reformulation de certaines phrases pour être plus clair

This commit is contained in:
btatu 2022-06-15 11:05:05 +02:00
parent 92d52997d6
commit 081d043511
1 changed files with 21 additions and 14 deletions

View File

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