Utilisation des commandes crontab :

Visualisation de la crontab

> crontab -l

Edition de la crontab

> crontab -e
Il faut avoir un éditeur de configuré :
> export EDITOR=vi

Suppression de sa crontab

crontab -r

Afficher la crontab d'un utilisateur

crontab -u user -l

Configuration :

Syntaxe :

1 mm hh jj MMM JJJ tâche
2 
3 # mm représente les minutes (de 0 à 59)
4 # hh représente l'heure (de 0 à 23)
5 # jj représente le numéro du jour du mois (de 1 à 31) MMM représente le numéro du mois (de 1 à 12)
6 # JJJ représente le chiffre correspondant au jour de la semaine (0 =dimanche, 1 = lundi, ..., 7 = dimanche) 
7 # tâche représente la commande ou le script shell à exécuter

Raccourcis :

1 Raccourcis       Description                     Equivalent
2 @reboot           Au démarrage                   Aucun
3 @yearly           Tous les ans                  0 0 1 1 
4 @monthly          Tous les mois                 0 0 1  
5 @weekly           Toutes les semaines           0 0   0
6 @daily            Tous les jours                0 0   
7 @hourly           Toutes les heures             0    

Exemples :

Tous les jours à 20h30

30 20 * * * ls -al >> /tmp/ls

Toutes les 5 minutes

*/5 * * * * ls -al >> /tmp/ls

Tous les vendredis 13 à 10h

0 10 13 * 5 ls -al >> /tmp/ls

Tous les lundis de juin et juillet

0 0 * 6-7 1 ls -al >> /tmp/ls

Tous les lundis de juin, août et décembre

0 0 * 6,8,12 1 ls -al >> /tmp/ls

Tous les 1ers lundis de chaque mois

0 7 1-7 * * [ "$(date '+\%u')" == "1" ] && ls -al >> /tmp/ls

Désactivation de l'envoi de mail :

1  >/dev/null 2>&1      # A ajouter à la fin de la commande

Debug du script dans la crontab :

1  2> /tmp/debug.log    # A ajouter à la fin de la commande et sh -x si besoin

Attention au PATH dans le cron :

1 PATH=/usr/bin:/bin   Attention dans les scripts