Crontab

Un article de WindowsLinux.net - Astuces pour Windows et Linux !.

Crontab vous permet de planifier des tâches.

Sommaire

Restrictions

Selon votre distribution,

Vous pouvez utiliser crontab si votre nom apparaît dans le fichier /usr/lib/cron/cron.allow . Si ce fichier n'existe pas, vous pouvez utilisez crontab si votre nom n'apparaît pas dans le fichier /usr/lib/cron/cron.deny .

Si cron.deny existe et est vide, tous les utilisateurs peuvent utiliser crontab.

Les fichiers allow/deny consistent en l'utilisation d'un nom par ligne.

Commandes

crontab -e

Editer votre fichier crontab, ou en créer un si il n'existe pas.

crontab -l

Affiche votre fichier crontab.

crontab -r

Supprime votre fichier crontab.

crontab -v

Affiche la dernière date d'édition de votre crontab. Existe sur certains systèmes seulement.

Fichier crontab

Syntaxe :

Un fichier crontab a 5 champs, pour spécifier le jour, la date, et l'heure, suivi par la commande qui doit être exécutée à cet interval

*     *     *     *     *  command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- jour de la semaine (0 - 6) (Dimanche=0)
|     |     |     +------- mois (1 - 12)
|     |     +--------- jour du mois (1 - 31)
|     +----------- heures (0 - 23)
+------------- minutes (0 - 59)
 

Les valeurs dans les colonnes peuvent être une étoile (*) ou une liste d'éléments séparés par des virgules. Un élément peut être un nombre ou deux nombres séparés par un trait d'union.

Note : la spécification des jours, pour une commande donnée, peut occuper deux champs : jour du mois et jour de la semaine. Si les deux sont spécifiés sur la même ligne, ils sont cumulés : les deux entrées seront exécutées.


Exemples

Voici un exemple : supprimer le contenu d'un dossier tous les jours à 18h30.

30     18     *     *     *         rm /home/utilisateur/tmp/*

Voici d'autres exemples :


Exemples de syntaxe
Minute Heure Jour du mois Mois Jour de la semaine Temps d'exécution

30

0

1

1,6,12

*

S'exécute à 00h30 le 1er Janvier, Juin & Décembre.

0

20

*

10

1-5

20h toutes les semaines, (Lundi au Vendredi [1-5]) seulement en Octobre.

0

0

1,10,15

*

*

A minuit, le 1er, le 10 et le 15 de chaque mois.

5,10

0

10

*

1

A minuit 5 et minuit 10, tous les lundis et le 10 de chaque mois.

Pour plus d'informations, tapez :

man 5 crontab

Environnement

Cron invoque les commandes depuis le répertoire HOME de l'utilisation, avec le shell (/usr/bin/sh).


Cron apporte un environnement par défaut pour chaque shell, contenant :

HOME=répertoire-home-de-l'utilisateur

LOGNAME=id-du-login-de-l'utilisateur

PATH=/usr/bin:/usr/sbin:.

SHELL=/usr/bin/sh

Les utilisateur qui désirent avoir leur .profile exécuté doivent l'expliciter dans l'entrée crontab ou dans le script appelé par l'entrée crontab.

Supprimer les mails

Par défaut les tâches cron envoient un mail au compte d'utilisateur qui exécute la tâche. Si ce n'est pas requis, ajoutez la commande suivante à la fin de la ligne cron :

>/dev/null 2>&1


Une autre solution est d'ajouter :

MAILTO=""

dans le fichier crontab (ou le script qui doit être exécuté).

Générer des log

Pour enregistrer le résultat d'une tâche cron dans un fichier log :

30 18  *    *   *    rm /home/utilisateur/tmp/* > /home/utilisateur/cronlogs/clean_tmp_dir.log

Editeur par défaut

Voir aussi l'article Editeur par défaut.