Crontab

Version imprimableEnvoyer par emailversion PDF

Crontab vous permet de planifier des tâches.

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

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.

 

* * * * * <commande a lancer>
| | | | |
| | | | +--jour de la seamine (0 - 6) (Dimanche=0)
| | | +----mois (1 à 12)
| | +------jour du mois (1 au 31)
| +--------minutes (0 à 59)
+----------heures (0 à 23)
+-------- 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/*

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.

Sponsors