Outils pour utilisateurs

Outils du site


hwt:grb

Utilisation de Crontab

La « crontab », qu'est-ce que c'est ?

crontab est en fait une commande qui permet de lire et de modifier un fichier appelé la « crontab ».
Ce fichier contient la liste des programmes que vous souhaitez exécuter régulièrement, et à quelle heure vous souhaitez qu'ils soient exécutés.

crontab permet donc de changer la liste des programmes régulièrement exécutés. C'est toutefois le programme cron qui se charge d'exécuter ces programmes aux heures demandées. Ne confondez donc pas crontab et cron : le premier permet de modifier la liste des programmes à exécuter, le second les exécute.


Comment utilise-t-on crontab ?

Il y a trois paramètres différents à connaître, pas plus :

  • -e : modifier la crontab ;
  • -l : afficher la crontab actuelle ;
  • -r : supprimer votre crontab. Attention, la suppression est immédiate et sans confirmation !


Afficher la crontab actuelle :

$ crontab -l
no crontab for mateo21

Normalement, vous n'avez pas encore créé de crontab. Vous noterez qu'il y a une crontab par utilisateur. Là j'édite la crontab de mateo21 car je suis loggé avec l'utilisateur mateo21, mais root a aussi sa propre crontab. La preuve :

$ sudo crontab -l
no crontab for root


Modifier la crontab

# crontab -e

SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#minute hour    mday    month   wday    command
#
# rotate log files every hour, if necessary
0       *       *       *       *       /usr/bin/newsyslog
# send log file notifications, if necessary
#1-59   *       *       *       *       /usr/bin/newsyslog -m
#
# do daily/weekly/monthly maintenance
30      1       *       *       *       /bin/sh /etc/daily
30      3       *       *       6       /bin/sh /etc/weekly
30      5       1       *       *       /bin/sh /etc/monthly
#0      *       *       *       *       sleep $((RANDOM \% 1800)) && /usr/libexec/spamd-setup


Les champs

Le fichier ne contient qu'une seule ligne :

# m h dom mon dow command

Comme cette ligne est précédée d'un #, il s'agit d'un commentaire (qui sera donc ignoré). Cette ligne vous donne quelques indications sur la syntaxe du fichier :

  • m : minutes (0 - 59) ;
  • h : heures (0 - 23) ;
  • dom (day of month) : jour du mois (1 - 31) ;
  • mon (month) : mois (1 - 12) ;
  • dow (day of week) : jour de la semaine (0 - 6, 0 étant le dimanche) ;
  • command : c'est la commande à exécuter.

Chaque ligne du fichier correspond à une commande que l'on veut voir exécutée régulièrement. Vous trouverez en figure suivante un schéma qui résume la syntaxe d'une ligne.

Les différentes notations possibles

Pour chaque champ, on a le droit à différentes notations :

  • 5 (un nombre) : exécuté lorsque le champ prend la valeur 5 ;
  • * : exécuté tout le temps (toutes les valeurs sont bonnes) ;
  • 3,5,10 : exécuté lorsque le champ prend la valeur 3, 5 ou 10. Ne pas mettre d'espace après la virgule ;
  • 3-7 : exécuté pour les valeurs 3 à 7 ;
  • */3 : exécuté tous les multiples de 3 (par exemple à 0 h, 3 h, 6 h, 9 h…).


CrontabSignification
47 * * * * commandeToutes les heures à 47 minutes exactement. Donc à 00 h 47, 01 h 47, 02 h 47, etc.
0 0 * * 1 commandeTous les lundis à minuit (dans la nuit de dimanche à lundi).
0 4 1 * * commandeTous les premiers du mois à 4 h du matin.
0 4 * 12 * commandeTous les jours du mois de décembre à 4 h du matin.
0 * 4 12 * commandeToutes les heures les 4 décembre.
* * * * * commandeToutes les minutes !
30 5 1-15 * * commandeÀ 5 h 30 du matin du 1er au 15 de chaque mois.
0 0 * * 1,3,4 commandeÀ minuit le lundi, le mercredi et le jeudi.
0 */2 * * * commandeToutes les 2 heures (00 h 00, 02 h 00, 04 h 00…)
*/10 * * * 1-5 commandeToutes les 10 minutes du lundi au vendredi.

Administration Système

hwt/grb.txt · Dernière modification : de 127.0.0.1