Aller au contenu

Traducteur d’expression cron :
que fait cette ligne ?

Collez une ligne telle qu’elle sort du crontab — les cinq champs seuls, ou la ligne complète avec sa commande. Vous obtenez la planification en une phrase en français, chaque champ décodé, et les dix prochaines dates où elle se déclenche. Rien n’est envoyé nulle part : l’analyse s’exécute dans votre navigateur.

Par où commencer

Lisez les champs dans cet ordre

Les lignes de crontab héritées sont rarement documentées. Lisez les cinq champs dans cet ordre :

1 · Comptez les champs

Cinq champs séparés par des espaces, c’est du crontab. Six ou sept, c’est Quartz ou un autre ordonnanceur qui commence par les secondes — un langage différent qui se ressemble par hasard. Tout ce qui suit le cinquième champ est la commande, pas la planification.

5 = cron · 6+ = pas du cron

2 · Lisez les deux derniers en premier

Le jour du mois et le jour de la semaine décident quels jours. Si les deux portent des chiffres, arrêtez-vous là : cron se déclenche dès que l’un ou l’autre correspond — la règle du OU, et l’erreur de lecture classique.

les deux définis → OU, pas ET

3 · Puis les deux premiers

La minute et l’heure indiquent à quelle heure, ces jours-là. Une étoile dans le champ des minutes veut dire 60 exécutions par heure. Le champ du mois ne compte que lorsqu’il n’est pas une étoile.

* en minute = 60×/heure
Exemple concret

Ce que fait chaque ligne de ce crontab

Le résultat de crontab -l sur un serveur inconnu, traduit ligne par ligne. Traduisez n’importe laquelle : le bouton la charge dans le lecteur ci-dessus. Les lignes complètes fonctionnent aussi : collez une commande entière dans la barre en haut, et le lecteur reprend la planification en nommant la partie qu’il a ignorée.

# m h dom mon dow command
*/5 * * * *   /usr/local/bin/health-ping.sh
30 3 * * *    /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1
0 9 * * 1-5   /usr/local/bin/daily-digest.sh
0 6 1 * *     /usr/local/bin/invoice-run.sh
*/5 * * * *un ping de santé toutes les 5 minutes, en continu — 288 exécutions par jour
30 3 * * *la sauvegarde nocturne à 03:30 — la seule ligne, à noter, dont la sortie part vers un journal
0 9 * * 1-5la synthèse à 09:00, les jours ouvrables seulement — 1-5 dans le dernier champ, c’est lundi à vendredi
0 6 1 * *la facturation le 1er du mois à 06:00 — un 1 dans le champ du milieu, c’est une date, pas un jour de la semaine
Sens de lecture

Comment lire chaque symbole cron

Chaque symbole est un raccourci, et c’est en le décodant mal qu’une planification est mal relue en revue de code :

  • Les pas se comptent à partir du minimum du champ. */6 dans le champ des heures donne 00, 06, 12, 18 — pas « six heures après la dernière exécution ».
  • Des chiffres dans les deux champs de jour signifient OU, pas ET. Cron se déclenche dès que l’un des deux correspond, donc la planification est plus large qu’il n’y paraît.
  • Les noms et les raccourcis, c’est un dialecte. MON et @daily se lisent bien ici et dans la plupart des cron — les chiffres sont l’orthographe que tout cron accepte.
Voir la règle du OU démontrée en direct

Les symboles, décodés

ce que chacun développe
*n’importe quoi — dans le champ des minutes, cela fait 60 déclenchements par heuretout
*/6une valeur sur 6, comptée depuis le minimum du champun pas
9-17une plage, bornes inclusesune plage
1,15exactement ces valeurs, rien d’autre entre les deuxune liste
MON · JANdes noms de 3 lettres que certains cron acceptent — cette page les lit, mais les chiffres voyagent mieuxlu ici
@dailyun raccourci pour 0 0 * * * — développé ici pour que vous voyiez ce qu’il cachedéveloppé
L # ? WQuartz (Jenkins, Spring) — un crontab refuse la ligne entièrepas du cron
Forme canonique

0 0 * * 0, @weekly et SUN

Les quatre lignes ci-dessous correspondent toutes à dimanche minuit. Le traducteur les relit toutes vers la même phrase et la même liste de prochaines exécutions.

Les chiffres — l’orthographe que tout cron accepte0 0 * * 0
Le raccourci@weekly
Le nom du jour0 0 * * SUN
7 signifie aussi dimanche0 0 * * 7
Depuis la bibliothèque

Des expressions cron pour tous les jours

Chacune est déjà décodée et renvoie vers sa page complète — prochaines exécutions, variantes, et la ligne crontab prête à copier. L’ensemble vit dans la bibliothèque d’exemples cron.

Tâche cron chaque minute* * * * *
Tâche cron toutes les 5 minutes*/5 * * * *
Tâche cron toutes les 15 minutes*/15 * * * *
Tâche cron toutes les 30 minutes*/30 * * * *
Tâche cron chaque heure0 * * * *
Tâche cron toutes les 6 heures0 */6 * * *
Tâche cron tous les jours à minuit0 0 * * *
Tâche cron chaque jour ouvrable0 0 * * 1-5
Tâche cron chaque dimanche0 0 * * 0
Tâche cron mensuelle0 0 1 * *
Tâche cron trimestrielle0 0 1 */3 *
Tâche cron annuelle0 0 1 1 *
FAQ

Les expressions cron le plus souvent collées

Chaque minute de chaque heure, chaque jour — 1 440 exécutions par jour, 525 600 par an. Les cinq champs sont tous des jokers, donc rien n’est restreint. C’est la bonne planification pour un ping de santé peu coûteux, et la mauvaise pour presque tout le reste. Héritée devant un script coûteux, c’est la première ligne à remettre en question.

Une valeur sur 5 dans ce champ, comptée depuis son minimum. Dans le champ des minutes, */5 se déclenche à :00, :05, :10 … :55 — 12 fois par heure, pile sur les graduations de l’horloge. Cela ne veut pas dire « 5 minutes après la dernière exécution » : cron compare des valeurs d’horloge. Donc */7 donne :00, :07 … :56 puis :00 à nouveau — un écart de 4 minutes au début de chaque heure.

Chaque jour à minuit, heure du serveur — minute 0 de l’heure 0, n’importe quelle date, n’importe quel mois, n’importe quel jour de la semaine. C’est exactement la planification qu’abrège @daily. « Minuit » est le minuit du serveur, et les nuits de changement d’heure, un serveur réglé en heure locale peut le sauter ou le répéter.

Identiques. Les raccourcis correspondent exactement : @hourly = 0 * * * *, @daily et @midnight = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *. L’exception, c’est @reboot — ce n’est pas une planification du tout, il se déclenche au démarrage du démon cron. Ce traducteur développe les raccourcis pour que vous voyiez toujours les cinq champs en dessous.

Parce qu’elle ne vient pas d’un crontab. Quartz (Jenkins, Spring), certains ordonnanceurs cloud et quelques bibliothèques cron placent un champ secondes en premier, ce qui en fait six — ou sept avec une année à la fin. Un crontab refusera de l’installer. Si le champ des secondes vaut 0, retirez-le : les cinq champs restants se lisent alors généralement comme du POSIX. S’il vaut autre chose, la planification se déclenche en dessous de la minute, et le cron classique ne sait tout simplement pas exprimer cela.

C’est du Quartz pour « aucune valeur précisée ». Quartz exige que l’un des deux champs de jour, et un seul, soit désactivé — c’est lui qui reçoit le point d’interrogation. Le cron POSIX n’a pas cette règle, ni de ? d’ailleurs — un simple * suffit. Quand les deux champs de jour sont restreints, cron s’exécute sur l’union des deux. Collez un ? dans un crontab et la ligne est rejetée.

Oui. Collez 30 3 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1 et le lecteur prend les cinq champs de planification, les traduit, et nomme le reste de la ligne comme la partie qu’il a ignorée. Il lit aussi la forme /etc/crontab, où un nom d’utilisateur se place entre la planification et la commande. Ce qu’il ne fera pas, c’est deviner une ligne à six champs : un champ des secondes en tête signifie Quartz, pas crontab, et c’est un langage différent.

Collez l’expression ci-dessus. La vue de résultat liste les dix prochaines exécutions sous forme de dates concrètes, calculées par un véritable analyseur, dans le fuseau horaire de votre navigateur. Le crontab, lui, s’exécute sur l’horloge du serveur : si la machine tourne en UTC et pas vous, toute la liste se décale de votre écart horaire. Rien ne vous dit en revanche qu’une exécution a réussi — cron ne journalise jamais que son démarrage.

Les outils gratuits, c'est un début.
Uptimia veille sur la santé de vos sites.

Disponibilité, SSL, expiration de domaine, vitesse de page, transactions — surveillés depuis 171+ emplacements dans le monde. 30 jours gratuits.

30 jours gratuits sans carte bancaire résiliable à tout moment plan gratuit après l'essai
100 000+ sites surveillés · conforme au RGPD