Qu’est-ce que cron ?

Cron est un outil sous Unix/Linux qui permet de planifier l’exécution automatique de commandes à des dates et heures spécifiées.


Structure d’une entrée cron

Une entrée dans le fichier crontab se présente généralement comme suit:

* * * * * /chemin/vers/commande arguments
- - - - -
| | | | | 
| | | | +-- Jour de la semaine (0 - 7) [0 et 7 représentent Dimanche]
| | | +---- Mois (1 - 12)
| | +-------- Jour du mois (1 - 31)
| +---------- Heure (0 - 23)
+----------- Minute (0 - 59)

Éditer le fichier crontab

Pour éditer la table de l’utilisateur actuel:

crontab -e

Pour afficher les tâches cron de l’utilisateur actuel:

crontab -l

Exemples d’entrées cron

Exécuter ma-commande tous les jours à 3h15:

15 3 * * * /chemin/vers/ma-commande

Exécuter ma-commande tous les lundis à minuit:

0 0 * * 1 /chemin/vers/ma-commande

Exécuter ma-commande toutes les heures:

0 * * * * /chemin/vers/ma-commande

Spécificateurs spéciaux

Il existe des spécificateurs spéciaux pour simplifier la planification:

  • @reboot : Exécute la commande au démarrage.
  • @yearly ou @annually : Exécute une fois par an.
  • @monthly : Exécute une fois par mois.
  • @weekly : Exécute une fois par semaine.
  • @daily ou @midnight : Exécute une fois par jour.
  • @hourly : Exécute une fois par heure.

Logs et redirections

Pour rediriger la sortie et les erreurs d’une tâche cron vers un fichier:

* * * * * /chemin/vers/ma-commande >> /chemin/vers/mon-log.log 2>&1

Conseils

  • Assurez-vous que les scripts ou les commandes exécutées par cron ont les autorisations d’exécution appropriées.
  • Spécifiez toujours le chemin complet vers les commandes ou les scripts.
  • Pensez à utiliser des logs pour suivre les exécutions des tâches.