From 081d043511212ff4ff28e457317c01610cee0b12 Mon Sep 17 00:00:00 2001 From: btatu Date: Wed, 15 Jun 2022 11:05:05 +0200 Subject: [PATCH] =?UTF-8?q?reformulation=20de=20certaines=20phrases=20pour?= =?UTF-8?q?=20=C3=AAtre=20plus=20clair?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- HowtoCron.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/HowtoCron.md b/HowtoCron.md index 1dc2659c..28bbf81f 100644 --- a/HowtoCron.md +++ b/HowtoCron.md @@ -3,13 +3,11 @@ categories: sysadmin web title: Howto Cron ... -* man 5 crontab : - -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