La crontab pour les nuls

La structure d’une ligne de crontab

Après avoir vu l’exemple précédent, voyons de manière plus générale comment est structurée une ligne dans la crontab.

Une tâche CRON s’écrit de la manière suivante :

mm hh jj MMM JJJ <utilisateur> <commande> > log.txt

Décortiquons (encore une fois) chaque élément :

  • mm indique à quelle minute (de 0 à 59) la tâche doit s’exécuter.
  • hh indique à quelle heure (de 0 à 23) la tâche doit s’exécuter.
  • jj indique à quel jour (de 1 à 31) la tâche doit s’exécuter.
  • MMM indique le numéro du mois (de 1 à 12) ou les 3 premières lettres du mois en anglais (jan, feb, mar, apr, etc…) où la tâche doit s’exécuter.
  • JJJ indique le numéro du jour de la semaine (de 0 à 6, avec le 0 qui représente le dimanche, le 1 représente le lundi, etc) ou les 3 premières lettres du jour de la semaine en anglais (mon, tue, wed, thu, etc…) où la tâche doit s’exécuter.
    • Attention, il y a quelques subtilités avec les dates et les heures d’exécution :
      • Si vous entrez « 0 16 15 * *« , la tâche s’exécutera tous les 15 du mois à 16h00. Jusque là vous me suivez.
      • Si vous entrez « 0 16 15 * sat« , elle s’exécutera tous les 15 du mois à 16h00 et tous les samedis à 16h00. Subtil.
      • Si vous entrez « 0 16 15 apr sat« , elle s’exécutera le 15 avril à 16h00 et tous les samedis à 16h00. *sueurs*
      • Si vous entrez « 0 16 * * sat », elle s’exécutera tous les samedis à 16h00.
      • En gros : si vous écrivez le jour de la semaine en plus du jour du mois et/ou du mois, la tâche s’exécutera toutes les semaine au jour qui aura été précisé en plus du jour du mois qui aura été précisé avant.
  • <utilisateur> indique en tant que quel utilisateur la tâche doit être exécutée. Entrez un nom d’utilisateur pour exécuter la tâche comme si c’était lui qui l’effectuait ou ne mettez rien pour que la tâche soit exécutée par l’utilisateur dont vous modifiez la crontab.
  • <commande> indique la/les commande(s) ou le/les fichier(s) à exécuter.
  • > log.txt indique dans quel fichier doit être écrit la sortie (ce qui doit normalement vous être affiché à l’écran lorsque vous exécutez la/les commande(s) ou le/les fichier(s)).
    • Si vous souhaitez que CRON n’enregistre pas la sortie mais vous avertit des erreurs (par e-mail par exemple, selon la configuration de votre serveur), tapez > /dev/null.
    • Si vous souhaitez que CRON n’enregistre pas la sortie et ne vous avertit pas des erreurs, tapez > /dev/null 2>&1.
    • On y vient on y vient, je vous expliquerai ces chemins de sortie spéciaux au prochain chapitre.

Cryonid

Freedom and privacy is what I'm fighting for.

1 réponse

  1. Benoît dit :

    Bonsoir,
    Merci pour cet article très intéressant et complet.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.