crontab - gérer les fichiers crontab pour les utilisateurs individuels (Vixie Cron)
SYNTAXE
crontab [-h]
crontab [-u utilisateur] [-n] fichier
crontab [-u utilisateur] [-i] {-e | -l | -r}
DESCRIPTION
crontab est le programme utilisé pour installer, désinstaller ou lister les tables utilisées pour piloter le démon cron(8) dans Vixie Cron. Chaque utilisateur peut avoir son propre fichier crontab, et bien qu'il s'agisse de fichiers situés dans /var/spool/cron/crontabs, ils ne sont pas destinés à être édités directement.
Si le fichier /etc/cron.allow existe, vous devez y être répertorié (un utilisateur par ligne) afin de pouvoir utiliser cette commande. Si le fichier /etc/cron.allow n'existe pas mais que le fichier /etc/cron.deny existe, vous ne devez pas être répertorié dans le fichier /etc/cron.deny pour pouvoir utiliser cette commande.
Veuillez vérifier que les permissions du fichier /etc/cron.allow le rendent lisible par les utilisateurs autorisés. Par exemple, les permissions rw- r-- r-- (octal 644) devraient être correctes.
Si aucun de ces fichiers n'existe, en fonction des paramètres de configuration spécifiques au site, seul l'utilisateur root sera autorisé à utiliser cette commande, ou tous les utilisateurs pourront utiliser cette commande.
Si les deux fichiers existent, /etc/cron.allow est prioritaire. Cela signifie que /etc/cron.deny n'est pas pris en compte et que votre utilisateur doit être répertorié dans /etc/cron.allow pour pouvoir utiliser crontab.
Quel que soit l'existence de ces fichiers, l'utilisateur administratif root est toujours autorisé à configurer un crontab. Pour les systèmes Debian standard, tous les utilisateurs peuvent utiliser cette commande.
Si l'option -h est donnée, crontab affiche un message d'aide et quitte immédiatement.
Si l'option -u est donnée, elle spécifie le nom de l'utilisateur dont le crontab doit être utilisé (lors de la liste) ou modifié (lors de l'édition). Si cette option n'est pas donnée, crontab examine le fichier crontab « de l'utilisateur », c'est-à-dire le fichier crontab de la personne exécutant la commande. Notez que su(8) peut induire crontab en erreur et que si vous exécutez dans su(8), vous devez toujours utiliser l'option -u pour plus de sécurité.
La première forme de cette commande est utilisée pour installer un nouveau crontab à partir d'un fichier nommé ou de l'entrée standard si le pseudo-fichier « - » est donné.
Si l'option -n est donnée, cela signifie « exécution à blanc » : crontab examine le fichier crontab « de l'utilisateur » pour vérifier sa syntaxe et affiche un message de succès si cette syntaxe est correcte, mais rien n'est écrit dans un fichier crontab.
L'option -l fait que le crontab actuel est affiché sur la sortie standard. Voir la note dans la section intitulée « SPÉCIFICITÉS DE DEBIAN » ci-dessous.
L'option -r permet de supprimer le crontab actuel.
L'option -e est utilisée pour modifier le crontab actuel à l'aide de sensible-editor(1). Une fois que vous quittez l'éditeur, le crontab modifié sera automatiquement installé.
L'option -i modifie l'option -r pour demander à l'utilisateur une réponse 'o/O' avant de supprimer réellement le crontab.
SPÉCIFIQUE À DEBIAN
Le comportement par défaut de crontab -l est d'afficher les trois lignes de l'en-tête « NE PAS MODIFIER CE FICHIER » qui sont placées au début du crontab lorsqu'il est installé. Le problème est que cela rend la séquence
crontab -l | crontab non idempotente — vous continuez à ajouter des copies de l'en-tête. Cela cause des problèmes aux scripts qui utilisent sed pour modifier un crontab. Par conséquent, le comportement par défaut de l'option -l a été modifié pour ne pas afficher cet en-tête. Vous pouvez obtenir le comportement d'origine en définissant la variable d'environnement CRONTAB_NOHEADER sur « N », ce qui fera que la commande crontab -l émettra l'en-tête supplémentaire.
MISE EN ÉVIDENCE DE LA SORTIE DE CRONTAB -L
La commande crontab -l affiche du texte brut. Lorsque le terminal peut prendre en charge les séquences ANSI pour colorer ce texte, vous pouvez mettre en évidence la sortie en exécutant : crontab -l | spc -t crontab lorsque l'arrière-plan du terminal est sombre, ou crontab -l | spc -t crontab-light lorsque cet arrière-plan est clair.
Le schéma de mise en évidence peut être modifié en utilisant des versions personnalisées des fichiers /etc/supercat/spcrc-crontab*.
Vous pouvez également colorer ce texte avec le programme batcat(1) fourni par le paquet bat, voici un exemple :
crontab -l | batcat --language Crontab
VOIR AUSSI
crontab(5), cron(8), spc(1)
FICHIERS
/etc/cron.allow, /etc/cron.deny Les fichiers /etc/cron.allow et /etc/cron.deny, s'ils existent, doivent être lisibles par le monde entier ou lisibles par le groupe « crontab ». S'ils ne le sont pas, cron(8) refusera l'accès à tous les utilisateurs jusqu'à ce que les autorisations soient corrigées.
/var/spool/cron/crontabs Il existe un fichier pour le crontab de chaque utilisateur dans le répertoire /var/spool/cron/crontabs. Les utilisateurs ne sont pas autorisés à modifier directement les fichiers de ce répertoire afin de s'assurer que seuls les utilisateurs autorisés par le système à exécuter des tâches périodiques peuvent les ajouter, et que seuls les crontabs syntaxiquement corrects seront écrits. Ceci est appliqué en rendant le répertoire accessible en écriture uniquement au groupe « crontab » et en configurant la commande crontab avec l'indicateur setgid pour ce groupe spécifique.
NORMES
La commande crontab est conforme à IEEE Std1003.2-1992 (« POSIX »). Cette nouvelle syntaxe de commande diffère des versions antérieures de Vixie Cron, ainsi que de la syntaxe SVR3 classique.
DIAGNOSTICS
Un message d'utilisation assez informatif apparaît si vous l'exécutez avec une ligne de commande incorrecte.
cron(8) exige que chaque entrée d'un crontab se termine par un caractère de saut de ligne. Si la dernière entrée d'un crontab manque du saut de ligne, cron(8) considérera le crontab (au moins partiellement) comme incorrect et refusera de l'installer.
Les fichiers situés dans /var/spool/cron/crontabs sont nommés en fonction du nom de compte de l'utilisateur. Les tâches Crontab ne seront pas exécutées pour les utilisateurs dont les comptes ont été renommés, soit en raison de modifications du système local, soit parce qu'ils sont gérés via une base de données d'utilisateurs centrale (externe au système, par exemple, un répertoire LDAP).
AUTEURS
Paul Vixie <_> A écrit cette page de manuel (1994).
Steve Greenland <_> A maintenu le paquet (1996-2005).
Javier Fernández-Sanguino Peña <_> A maintenu le paquet (2005-2014).
Christian Kastner <_> A maintenu le paquet (2010-2016).
Georges Khaznadar <_> A maintenu le paquet (2022-2024).
COPYRIGHT
Copyright © 1994 Paul Vixie
Distribuez librement, sauf : ne supprimez pas mon nom du code source ou de la documentation (ne vous attribuez pas le mérite de mon travail), indiquez vos modifications (ne me faites pas porter le chapeau pour vos éventuels bogues), ne modifiez pas ou ne supprimez pas cet avis. Peut être vendu si le code source compilable est fourni à l’acheteur. Aucune garantie de quelque nature que ce soit, expresse ou implicite, n’est incluse avec ce logiciel ; utilisez-le à vos propres risques, la responsabilité des dommages (le cas échéant) causés à quiconque résultant de l’utilisation de ce logiciel incombe entièrement à l’utilisateur.
Depuis 1994, de nombreuses modifications ont été apportées à cette page de manuel par les développeurs Debian qui ont maintenu cron ; la liste ci-dessus n’est qu’une liste abrégée, plus d’informations peuvent être trouvées dans le fichier /usr/share/doc/cron/copyright.