Manuel FreeBSD
Précédent | Chapitre 11. Configuration et optimisation | Suivant

# 11.6. Configuration de l'utilitaire `cron`

Contribution de Tom Rhodes.

Un des utilitaires les plus importants de FreeBSD est cron(8). L'utilitaire `cron` tourne en arrière plan et contrôle constamment le fichier `/etc/crontab`. L'utilitaire `cron` consulte également le répertoire `/var/cron/tabs`, à la recherche de nouveaux fichiers `crontab`. Ces fichiers `crontab` conservent les informations sur les tâches que `cron` est censé exécuter à des moments donnés.

L'utilitaire `cron` utilise deux types différents de fichiers de configuration, le fichier `crontab` système et les `crontab`s des utilisateurs. La seule différence entre ces deux formats est le sixième champ. Dans le fichier `crontab` système, le sixième champ est le nom de l'utilisateur sous lequel doit être exécutée la commande. Cela donne la possibilité au fichier `crontab` système d'exécuter les commandes sous n'importe quel utilisateur. Dans le fichier `crontab` d'un utilisateur, le sixième champ est la commande a exécuter et toutes les commandes sont exécutées sous l'utilisateur qui a créé le fichier `crontab`; c'est un aspect sécurité important.

> Note : Les fichiers `crontab` utilisateur permettent aux utilisateurs de planifier l'exécution de tâches sans avoir besoin des privilèges du super-utilisateur `root`. Les commandes contenues dans le fichier `crontab` d'un utilisateur s'exécutent avec les privilèges de l'utilisateur auquel appartient ce fichier.

> Le super-utilisateur `root` peut posséder un fichier `crontab` utilisateur comme tout autre utilisateur. Ce fichier est différent de `/etc/crontab` (le `crontab` système). En raison de l'existence du fichier `crontab` système, il n'y a généralement pas besoin d'un fichier `crontab` utilisateur pour `root`.

Examinons le fichier `/etc/crontab` (fichier `crontab` système):

    # /etc/crontab - root's crontab for FreeBSD
    #
    # $FreeBSD: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp $
    #
    #
    SHELL=/bin/sh
    PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
    HOME=/var/log
    #
    #
    #minute	heure	date	mois	jour	utilisateur	commande
    #
    #
    */5	*	*	*	*	root	/usr/libexec/atrun

  Comme pour la plupart des fichiers de configuration de FreeBSD, le caractère `#` indique un commentaire. Un commentaire peut être ajouté dans le fichier comme rappel de ce que fait une action bien précise et pourquoi elle est effectuée. Les commentaires ne peuvent être situés sur la même ligne qu'une commande ou sinon ils seront interprétés comme faisant partie de la commande; ils doivent se trouver sur une nouvelle ligne. Les lignes vides sont ignorées.
  Tout d'abord, les variables d'environnement doivent être définies. Le caractère égal (`=`) est utilisé pour définir tout paramètre concernant l'environnement, comme dans notre exemple où il a été utilisé pour les variables `SHELL`, `PATH`, et `HOME`. Si la ligne concernant l'interpréteur de commande est omise, `cron` utilisera celui par défaut, qui est `sh`. Si la variable `PATH` est omise, il n'y aura pas de valeur par défaut utilisée et l'emplacement des fichiers devra être absolu. Si `HOME` est omise, `cron` utilisera le répertoire personnel de l'utilisateur qui l'invoque.
  Cette ligne définie un total de sept champs. Sont listés ici les valeurs `minute`, `heure`, `date`, `mois`, `jour`, `utilisateur`, et `commande`. Ces champs sont relativement explicites. `minute` représente l'heure en minute à laquelle la commande sera exécutée. L'option `heure` est semblable à l'option `minute`, mais en heures. Le champ `date` précise le jour dans le mois. `mois` est similaire à `heure` et `minute` mais désigne le mois. L'option `jour` représente le jour de la semaine. Tous ces champs doivent être des valeurs numériques, et respecter un format horaire de vingt quatre heures. Le champ `utilisateur` est spécial, et n'existe que dans le fichier `/etc/crontab`. Ce champ précise sous quel utilisateur sera exécutée la commande. Quand un utilisateur installe son fichier `crontab`, il n'aura pas cette option. Pour finir, l'option `commande` est listée. C'est le dernier champ, qui naturellement devrait désigner la commande à exécuter.
  Cette dernière ligne définie les valeurs discutées ci-dessus. Nous avons ici `*/5` suivi de plusieurs caractères `*`. Ces caractères `*` signifient ``premier-dernier'', et peuvent être interprétés comme voulant dire à chaque instance. Aussi, d'après cette ligne, il apparaît que la commande `atrun` sera invoquée par l'utilisateur `root` toutes les cinq minutes indépendamment du jour ou du mois. Pour plus d'informations sur la commande `atrun`, consultez la page de manuel de atrun(8).

  N'importe quel nombre d'indicateur peut être passé à ces commandes; cependant, les commandes qui s'étendent sur de multiples lignes doivent être ``cassées'' avec le caractère, contre-oblique `\`, de continuation de lignes.

Ceci est la configuration de base pour chaque fichier `crontab`, bien qu'il y ait une différence dans celui présenté ici. Le sixième champ, où est précisé le nom d'utilisateur, n'existe que dans le fichier système `/etc/crontab`. Ce champ devrait être omis pour les fichiers `crontab` d'utilisateur.

## 11.6.1. Installer un fichier crontab

> Important : Vous ne devez pas utiliser la procédure décrite ci-dessous pour éditer/installer le fichier `crontab` système. Utilisez directement votre éditeur: l'utilitaire `cron` remarquera le changement au niveau de ce fichier et utilisera immédiatement la nouvelle version. Consultez cette entrée de la FAQ pour plus d'information.

Pour installer un fichier `crontab` utilisateur fraîchement rédigé, tout d'abord utilisez votre éditeur favori pour créer un fichier dans le bon format, ensuite utilisez l'utilitaire `crontab`. L'usage le plus typique est:

    # crontab fichier-crontab

Dans cet exemple, `fichier-crontab` est le nom d'un fichier `crontab` qui a été précédemment créé.

Il existe également une option pour afficher les fichiers `crontab` installés, passez simplement le paramètre `-l` à `crontab` et lisez ce qui est affiché.

Pour les utilisateurs désirant créer leur fichier crontab à partir de zéro, sans utiliser de modèle, l'option `crontab -e` est disponible. Cela invoquera l'éditeur par défaut avec un fichier vide. Quand le fichier est sauvegardé, il sera automatiquement installé par la commande `crontab`.

Si vous désirez plus tard effacer votre `crontab` utilisateur complètement, utilisez la commande `crontab` avec l'option `-r`.

Précédent | Sommaire | Suivant
Démarrer des services | Niveau supérieur | Utilisation du système rc sous FreeBSD

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.