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.
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 variablesSHELL
,PATH
, etHOME
. Si la ligne concernant l'interpréteur de commande est omise,cron
utilisera celui par défaut, qui estsh
. Si la variablePATH
est omise, il n'y aura pas de valeur par défaut utilisée et l'emplacement des fichiers devra être absolu. SiHOME
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
, etcommande
. Ces champs sont relativement explicites.minute
représente l'heure en minute à laquelle la commande sera exécutée. L'optionheure
est semblable à l'optionminute
, mais en heures. Le champdate
précise le jour dans le mois.mois
est similaire àheure
etminute
mais désigne le mois. L'optionjour
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 champutilisateur
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 fichiercrontab
, il n'aura pas cette option. Pour finir, l'optioncommande
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 commandeatrun
sera invoquée par l'utilisateurroot
toutes les cinq minutes indépendamment du jour ou du mois. Pour plus d'informations sur la commandeatrun
, 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.
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
.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://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>.