Crontab-fr

From aldeid
Jump to navigation Jump to search
This article is also available in one or more other languages
To view this article in English, click here
You might also see: cron

Définition

Crontab est un utilitaire qui permet de modifier les tables situées dans le répertoire /var/spool/cron/crontabs. Ces tables ne sont effectivement pas prévues pour être modifiées directement. Les tables de crontab permettent de programmer des événements dans le temps, de manière régulière ou ponctuelle.

Utilisation

La syntaxe de base est la suivante :

crontab [-u user] file
crontab [-u user] { -e | -l | -r }

Options

-e
Permet d'éditer le crontab de l'utilisateur <user>
-l
Permet l'édition du crontab de l'utilisateur <user>
-r
Supprimer le crontab de l'utilisateur <user>

Variables d'environnement

Pour modifier l'éditeur par défaut (mode d'édition du crontab avec le paramètre -e), renseignez la variable $EDITOR comme ceci:

export EDITOR=/usr/bin/vim

Afin de renseigner cette variable de manière persistente, il est possible d'ajouter cette ligne dans le fichier ~/.bashrc.

Pour éviter la suppression accidentelle du crontab par l'option -r, il est possible de définir un alias de la commande crontab dans le fichier ~/.bashrc comme suit :

alias crontab="crontab -i"

Le paramètre -i permet d'afficher une demande de confirmation lors de la suppression.

Syntaxe du fichier de crontab

L'utilitaire crontab permet de mettre à jour le fichier crontab pour l'utilisateur courant dans le dossier /var/spool/cron/crontabs/.

Chaque ligne de ce fichier doit nécessairement être formatée comme suit, avec, comme séparateur d'élément, un espace ou une tabulation :

24 3 * * 1 root /foo/bar/script.sh
0-59 0-23 1-31 1-12 0-7    ╰➙ Commande à exécuter
 ╰➙ Commande lançée par l'utilisateur root
 ╰➙ Jour de la semaine (1=Lundi, 2=Mardi, ..., 7=0=Dimanche)
 ╰➙ Mois (1=Janvier, 2=Février, ..., 12=Décembre)
 ╰➙ Jour du mois
 ╰➙ Heure
 ╰➙ Minute

Exemples

Pour lancer une tâche toutes les minutes :

* * * * * root /every/minute/task.sh

Pour lancer une tâche toutes les 5 minutes :

*/5 * * * * root /every/fiveminutes/task.sh

Pour lancer une tâche tous les mardis à 04:30 :

30 4 * * 2 root /every/tuesday/task.sh