Crontab-fr
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