Outils pour utilisateurs

Outils du site


informatique:linux:crontab

Visualisation

Afin d'afficher le contenu de la table cron (pour l'utilisateur courant), il suffit d'exécuter la commande suivante :

crontab -l

Cette commande ne permet pas d'afficher la crontab centralisée (/etc/crontab).

Modification

Afin d'éditer la table cron (pour l'utilisateur courant), il suffit d'exécuter la commande suivante :

crontab -e

Cette commande a pour effet de lancer l'éditeur par défaut (en général vi) présentant la table actuelle (donc aucune s'il s'agit du premier lancement de crontab). Cette commande ne permet pas de modifier la crontab centralisée (/etc/crontab).

Chaque entrée de la table (chaque ligne) correspond à une tâche à exécuter et est notée de la façon suivante :

mm hh jj MMM JJJ tâche > log

Dans cette syntaxe:

  • mm représente les minutes (de 0 à 59)
  • hh représente l'heure (de 0 à 23)
  • jj représente le numéro du jour du mois (de 1 à 31)
  • MMM représente le numéro du mois (de 1 à 12) ou l'abréviation du nom du mois (jan, feb, mar, apr, …)
  • JJJ représente l'abréviation du nom du jour ou le chiffre correspondant au jour de la semaine (0 représente le dimanche, 1 représente le lundi, …)
  • tâche représente la commande ou le script shell à exécuter
  • log représente le nom d'un fichier dans lequel stocker le journal des opérations. Si la clause> log n'est pas spécifiée, cron enverra automatiquement un courriel de confirmation. Pour éviter cela il suffit de spécifier > /dev/null

Pour chaque unité de temps (minute/heure/…) les notations sont possibles:

  • * : a chaque unité de temps
  • 2-5 : les unités de temps (2,3,4,5)
  • */3 : toutes les 3 unités de temps (0,3,6,…)
  • 5,8 : les unités de temps 5 et 8

Si sur la même ligne on trouve précisées une unité de temps “numéro du jour du mois” et une unité de temps “jour de la semaine”, celles-ci sont considérées par crontab comme cumulatives.

Exemples

Imaginons que l'on veuille faire un journal (dans le fichier /tmp/log_df.txt par exemple) automatisé de l'espace disque libre (commande df[1]) à des intervalles de temps précis:

  • Tous les jours à 23h30: 30 23 * * * df »/tmp/log_df.txt
  • Toutes les heures, passées de 5 minutes : 5 * * * * df »/tmp/log_df.txt
  • Tous les premiers du mois à 23h30: 30 23 1 * * df »/tmp/log_df.txt
  • Tous les lundis à 22h28: 28 22 * * 1 df »/tmp/log_df.txt
  • Du 2 au 5 de chaque mois à 10h12 : 12 10 2-5 * * df »/tmp/log_df.txt
  • Tous les jours pairs du mois à 23h59 : 59 23 */2 * * df »/tmp/log_df.txt
  • Toutes les 5 minutes : */5 * * * * df »/tmp/log_df.txt
  • Tous les premiers dimanches du mois : 1 2 * * 0 [ `/bin/date +\%d` -lt 8 ] && df »/tmp/log_df.txt
informatique/linux/crontab.txt · Dernière modification: 2018/09/06 19:10 (modification externe)