Manpages

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.

Support for /etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly and /etc/cron.monthly is provided in Debian through the default setting of the /etc/crontab file (see the system-wide example in crontab(5)). The default system-wide crontab contains four tasks: run every hour, every day, every week and every month. Each of these tasks will execute run-parts providing each one of the directories as an argument. These tasks are disabled if anacron is installed (except for the hourly task) to prevent conflicts between both daemons.

As described above, the files under these directories have to pass some sanity checks including the following: be executable, be owned by root, not be writable by group or other and, if symlinks, point to files owned by root. Additionally, the file names must conform to the filename requirements of run-parts: they must be entirely made up of letters, digits and can only contain the special signs underscores (’_’) and hyphens (’-’). Any file that does not conform to these requirements will not be executed by run-parts. For example, any file containing dots will be ignored. This is done to prevent cron from running any of the files that are left by the Debian package management system when handling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, .dpkg-old, and .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.

Support for /etc/cron.d is included in the cron daemon itself, which handles this location as the system-wide crontab spool. This directory can contain any file defining tasks following the format used in /etc/crontab, i.e. unlike the user cron spool, these files must provide the username to run the task as in the task definition.

Files in this directory have to be owned by root, do not need to be executable (they are configuration files, just like /etc/crontab) and must conform to the same naming convention as used by run-parts(8) : they must consist solely of upper- and lower-case letters, digits, underscores, and hyphens. This means that they cannot contain any dots. If the -l option is specified to cron (this option can be setup through /etc/default/cron, see below), then they must conform to the LSB namespace specification, exactly as in the --lsbsysinit option in 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 [AT] vix.com> est l’auteur de cron(8) 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

La traduction française de cette page de manuel a été créée par Steve Petruzzello <dlist [AT] bluewin.ch>, Nicolas François <nicolas.francois [AT] centraliens.net> et David Prévot <david [AT] tilapin.org>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.