NOM¶
cron - Démon permettant de lancer des commandes différées
(Vixie Cron)
SYNOPSIS¶
cron [
-f] [
-l] [
-L niveau]
DESCRIPTION¶
cron est démarré automatiquement depuis un script du
répertoire
/etc/init.d au moment d'entrer dans un niveau de
fonctionnement multiutilisateur.
OPTIONS¶
- -f
- Rester en mode « premier plan », ne pas
utiliser de démon.
- -l
- Activer les noms conformes LSB pour les fichiers du répertoire
/etc/cron.d. Ce réglage n'affecte cependant pas l'analyse
des fichiers des répertoires /etc/cron.hourly,
/etc/cron.daily, /etc/cron.weekly ou
/etc/cron.monthly.
- -n
- Inclure le nom de domaine complètement qualifié (FQDN) dans
le sujet lors de l’envoi de courriers. Par défaut, cron
abrège le nom d’hôte.
- -L niveau
- Annoncer à cron ce qu'il doit journaliser à propos
des travaux (les erreurs sont journalisées indépendamment de
cette valeur) suivant la somme des éléments
suivants :
- 1
- enregistre la date de début d'exécution des travaux
cron
- 2
- enregistre la date de fin d'exécution des travaux cron
- 4
- enregistre les travaux échoués (état de retour
différent de zéro)
- 8
- enregistre le numéro de processus des travaux cron
- Par défaut, la date de début d'exécution des travaux
cron est enregistrée (1). La journalisation est
désactivée si le niveau est mis à zéro
(0). une valeur de quinze (15) sélectionne toutes les options.
NOTES¶
cron recherche, dans le répertoire
/var/spool/cron/crontabs, des fichiers de crontab ayant des noms de
compte existant dans
/etc/passwd. Les crontabs trouvées sont
chargées en mémoire. Veuillez noter que les crontabs de ce
répertoire ne doivent pas être accédées
directement — la commande
crontab doit être
utilisée pour y accéder et les mettre à jour.
cron lit également le fichier
/etc/crontab, qui est dans un
format légèrement différent (consultez
crontab(5)). Dans Debian, le contenu d'
/etc/crontab est
prédéfini pour exécuter les programmes des
répertoires
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly et
/etc/cron.monthly. Cette configuration est
spécifique à Debian, consultez la partie
PARTICULARITÉS DEBIAN plus bas.
De plus, dans Debian,
cron lit les fichiers du répertoire
/etc/cron.d.
cron traite les fichiers de
/etc/cron.d de
la même manière que le fichier
/etc/crontab (ils ont le
même format spécial que ce fichier, c'est-à-dire qu'ils
intègrent le champ
identifiant). Toutefois ils sont
indépendants du fichier
/etc/crontab : par exemple, ils
n'héritent pas de ses variables d'environnement. Cette modification est
spécifique à Debian, consultez la partie
PARTICULARITÉS DEBIAN plus bas.
Comme le fichier
/etc/crontab, les modifications des fichiers du
répertoire
/etc/cron.d sont surveillées. En
général, l'administrateur système ne devrait pas utiliser
/etc/cron.d/ mais le système crontab standard constitué
du fichier
/etc/crontab.
/etc/crontab et les fichiers du répertoire
/etc/cron.d
doivent appartenir au superutilisateur, et ne pas être accessibles en
écriture au groupe ni aux autres. Contrairement à ceux de
l'espace
spool, les fichiers de
/etc/cron.d,
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly ou
/etc/cron.monthly peuvent aussi être des liens symboliques,
à condition que le lien symbolique et le fichier pointés
appartiennent au superutilisateur. Les fichiers de
/etc/cron.d n'ont
pas besoin d'être exécutables, alors que ceux de
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly et
/etc/cron.monthly doivent l'être, car ils sont
exécutés par
run-parts (consultez
run-parts(8)
pour plus de précisions).
Ensuite,
cron s'éveille toutes les minutes, examine les crontabs
existantes, et vérifie chaque commande pour savoir s'il doit la lancer
dans la minute à venir. Lors de l'exécution d'une commande,
toute sortie est envoyée par courrier au propriétaire de la
crontab (ou à l'utilisateur dont le nom est mentionné dans la
variable d'environnement
MAILTO si elle existe). Les copies des
processus fils ont leur nom mis en majuscules, observable dans le
syslog et dans la sortie de la commande
ps.
De plus,
cron vérifie chaque minute si la date de modification de
son répertoire de stockage (ou la date de modification du fichier
/etc/crontab) a changé. Si c'est le cas,
cron examinera
les dates de modification de chaque fichier crontab, et rechargera ceux qui
ont été modifiés. Ainsi,
cron n'a pas besoin
d'être redémarré après la modification d'un
fichier crontab. Remarquez que la commande
crontab(1) met à jour
la date de modification du répertoire de stockage si un changement a
lieu.
Il existe des dispositions spéciales lorsque l'horloge est
modifiée de moins de 4 heures, par exemple au début et
à la fin de l'heure d'été. Si l'heure a été
avancée, les travaux qui auraient dû être
exécutés à ce moment là le seront juste
après le changement. À l'inverse, si l'heure a été
retardée de moins de 3 heures, les travaux qui tombent dans cet
intervalle de temps ne seront pas exécutés de nouveau.
Seuls les travaux qui sont exécutés à un moment particulier
(ni indiqués par @hourly ni par « * » dans
le champ heure ou minute) sont affectés. Les travaux indiqués
avec des astérisques sont exécutés immédiatement
sur la base de l'heure modifiée.
Les changements d'horloge de plus de 3 heures sont
considérés comme des corrections de l'horloge, et la nouvelle
heure est utilisée immédiatement.
cron journalise ses actions à l'aide du paramètre
« cron » de syslog, et la journalisation peut
être contrôlée en utilisant le système standard
syslogd(8).
ENVIRONNEMENT¶
Dans les systèmes Debian,
/etc/default/cron peut être
configuré pour que les paramètres régionaux du
démon
cron soient gérés en utilisant
/etc/environment ou
/etc/default/locale, les valeurs du dernier
étant prioritaires sur celles du premier. Ces fichiers sont lus et les
définitions des variables d'environnement
LANG,
LC_ALL et
LC_CTYPE seront utilisées. Ces variables sont ensuite
utilisées pour configurer l'encodage des messages,
« C » par défaut.
Cela n'affecte
pas l'environnement des tâches
exécutées par cron. Pour plus de renseignements sur la
façon de modifier l'environnement des tâches, veuillez consulter
crontab(5).
Le démon utilisera, si elle existe, la définition du fuseau
horaire de
/etc/timezone.
L'environnement peut être redéfini dans les définitions des
crontabs des utilisateurs, mais
cron ne traitera les tâches que
dans un seul fuseau horaire.
PARTICULARITÉS DEBIAN¶
Debian introduit quelques modifications à
cron qui
n'étaient pas disponibles en amont à l'origine. Les
modifications les plus significatives introduites sont :
- —
- gestion des répertoires
/etc/cron.{hourly,daily,
weekly,monthly} par l'intermédiaire de
/etc/crontab ;
- —
- gestion de /etc/cron.d (répertoire de dépôt
des crontabs de paquet) ;
- —
- gestion de PAM ;
- —
- gestion de SELinux ;
- —
- gestion d'auditlog ;
- —
- modifications et corrections pour l'heure d'été et autres
problèmes d'heures ;
- —
- exécution de crontab(1) avec les privilèges du groupe
crontab au lieu de ceux du superutilisateur ;
- —
- emplacement des fichiers et commandes spécifiques à
Debian ;
- —
- configuration spécifique à Debian
(/etc/default/cron) ;
- —
- nombreuses autres fonctionnalités plus petites et corrections.
La prise en charge de
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly et
/etc/cron.monthly est fournie dans Debian
à l'aide des réglages par défaut du fichier
/etc/crontab. Le fichier système crontab par défaut
contient quatre tâches, exécutées toutes les heures, tous
les jours, toutes les semaines, et tous les mois. Chacune de ses tâches
exécutera
run-parts avec chaque répertoire en argument.
Ces tâches sont désactivées si
anacron est
installé (sauf la tâche exécutée toutes les
heures) pour éviter les conflits entre les deux démons.
Conformément à la description précédente, les
fichiers de ces répertoires doivent vérifier quelques
propriétés, parmi lesquelles : être
exécutable, appartenir au superutilisateur, ne pas être
accessible en écriture au groupe ni aux autres et, s'il s'agit de liens
symboliques, pointer vers des fichiers appartenant au superutilisateur. De
plus, les noms de fichier doivent respecter les exigences de
run-parts : ils ne doivent contenir que des caractères
alphanumériques, des tirets bas (« _ ») et
des traits d’union (« - »). Les fichiers ne
respectant pas ces exigences ne seront pas exécutés par
run-parts. Par exemple, les fichiers dont le nom contient un point
seront ignorés. Le but est d'éviter que
cron
exécute des fichiers laissés par le gestionnaire de paquet
Debian lorsqu'il traite les fichiers de
/etc/cron.d/ comme des fichiers
de configuration (c'est-à-dire les fichiers qui se terminent par
.dpkg-dist,
.dpkg-orig et
.dpkg-new).
Cette fonctionnalité peut servir aux administrateurs système et
aux paquets pour réaliser des tâches qui seront
exécutées à intervalles réguliers. Les fichiers de
ces répertoires créés par des paquets devraient prendre
le nom du paquet qui les fournit.
La prise en charge de
/etc/cron.d est fournie par le démon
cron lui-même, qui gère ce répertoire comme le
spool de crontab système. Ce répertoire peut contenir
n'importe quel fichier définissant des tâches respectant le
format utilisé dans
/etc/crontab, c'est-à-dire
contrairement au
spool de l'utilisateur, ces fichiers doivent fournir
un identifiant dans la définition de tâche pour
l'exécuter.
Les fichiers de ce répertoire doivent appartenir au superutilisateur,
n'ont pas besoin d'être exécutables (ce sont des fichiers de
configuration, tout comme
/etc/crontab) et doivent respecter la
même convention de nommage que celle utilisée par
run-parts(8) : leur nom ne doit contenir que des
caractères alphanumériques, des tirets bas et des traits
d’union. Il ne doivent donc
pas contenir de point. Si l'option
-l est indiquée à
cron (cette option peut
être configurée dans
/etc/default/cron, voir ci-dessous),
alors, ils doivent respecter les conventions de nommage LSB, tout comme avec
l'option
--lsbsysinit de
run-parts.
L'objectif de cette fonctionnalité est de permettre aux paquets qui
nécessitent un contrôle plus fin de leur programmation que ce
qui est offert par les répertoires
/etc/cron.{
hourly,
daily,
weekly,
monthly},
d'ajouter un fichier crontab dans
/etc/cron.d. Ces fichiers devraient
prendre le nom du paquet qui les fournit.
De plus, la configuration par défaut de
cron dépend de
/etc/default/cron qui est lu par le script d'initialisation qui lance
le démon
cron. Ce fichier détermine si
cron lira
les variables d'environnement du système et permet d'ajouter des
options supplémentaires au programme
cron avant qu'il ne soit
exécuté, soit pour configurer sa journalisation, soit pour
définir la façon dont il traite les fichiers du
répertoire
/etc/cron.d.
VOIR AUSSI¶
crontab(1),
crontab(5),
run-parts(8)
AUTEUR¶
Paul Vixie <
paul@vix.com> est l'auteur de
cron et de cette
page de manuel. Cette page a ensuite été modifiée pour
Debian par Steve Greenland, Javier Fernandez-Sanguino et Christian Kastner.
TRADUCTION¶
Cette page de manuel a été traduite et mise à jour par
Christophe Blaess entre 1997 et 2003. La version présente dans Debian
est dorénavant maintenue par Steve Petruzzello <dlist AT bluewin DOT
ch> et les membres de la liste <debian-l10n-french AT lists DOT debian
DOT org>. Veuillez signaler toute erreur de traduction par un rapport de
bogue sur le paquet manpages-fr-extra.