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.
- -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écutable,
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ème 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 consultez
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
crontab 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 fichier
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.