Mode d’emploi
- Saisissez ou collez une expression cron, ou choisissez l’une des fréquences courantes.
- Consultez la signification en langage clair. Les champs invalides sont indiqués avec la raison.
- Consultez les 10 prochaines heures d’exécution dans votre fuseau horaire local. Passez en UTC si votre serveur l’utilise.
- Copiez les heures d’exécution pour les partager, ou modifiez l’expression jusqu’à obtenir la fréquence souhaitée.
Fonctionnement
Une expression cron standard, utilisée par crontab sous Linux (Vixie cron et cronie) ainsi que par de nombreux ordonnanceurs d’intégration continue et d’hébergement, comporte cinq champs séparés par des espaces : minute (0–59), heure (0–23), jour du mois (1–31), mois (1–12 ou JAN–DEC) et jour de la semaine (0–7 ou SUN–SAT, où 0 et 7 correspondent tous deux au dimanche). Chaque champ accepte * pour toutes les valeurs, une valeur unique, une plage comme 1-5, une liste comme 1,15,30 et un pas comme */15 (toutes les 15 valeurs) ou 9-17/2 (toutes les deux heures de 9 à 17). Les noms ne distinguent pas les majuscules des minuscules. Les raccourcis @yearly (ou @annually), @monthly, @weekly, @daily (ou @midnight) et @hourly correspondent respectivement à 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * et 0 * * * *.
Les champs du jour du mois et du jour de la semaine obéissent à une règle qui en surprend plus d’un. Si l’un des deux champs commence par *, un jour doit satisfaire les deux champs. Si les deux champs sont limités, un jour correspond dès qu’il satisfait l’un ou l’autre : 0 0 13 * 5 s’exécute le 13 de chaque mois ainsi que tous les vendredis, et pas uniquement les vendredis 13. Comme le test porte sur le début du champ, un pas comme */2 est également considéré comme non limité. Ce comportement correspond à Vixie cron et cronie ; quelques autres ordonnanceurs fonctionnent différemment.
Les prochaines exécutions sont calculées dans le fuseau horaire de votre navigateur ou en UTC, utilisé par la plupart des serveurs et des ordonnanceurs cloud. Cron utilise le fuseau horaire de la machine sur laquelle il s’exécute. Le comportement des vrais démons cron varie lors des changements d’heure : cet outil omet les heures locales inexistantes lors du passage à l’heure d’été et n’affiche qu’une fois les heures répétées. Les syntaxes étendues ne sont pas prises en charge : expressions Quartz à six ou sept champs avec secondes ou années, ainsi que les caractères spéciaux ?, L, W et #.
Exemples
Vérification de disponibilité pendant les heures de bureau
*/15 9-17 * * 1-5 signifie toutes les 15 minutes entre 09:00 et 17:59, du lundi au vendredi. La dernière exécution de chaque jour a lieu à 17:45.
Sauvegarde nocturne
30 2 * * * s’exécute tous les jours à 02:30. Si le serveur utilise UTC et que vous êtes à New York, la liste des prochaines exécutions en mode UTC indique les heures réellement utilisées par le serveur.
Le piège des champs de jour
0 9 1 * 1 semble signifier « à 9 h le premier du mois si c’est un lundi », mais l’expression s’exécute à 09:00 le 1er de chaque mois ainsi que tous les lundis. Pour l’exécuter uniquement le premier lundi, planifiez 0 9 1-7 * * et vérifiez le jour de la semaine dans le script.
Foire aux questions
Que signifie */5 dans cron ?
Cela signifie toutes les cinquièmes valeurs du champ, à partir de sa valeur la plus basse. Dans le champ des minutes, */5 s’exécute aux minutes 0, 5, 10 … 55. Dans le champ des heures, */5 s’exécute à 0, 5, 10, 15 et 20 : l’intervalle entre 20:00 et minuit est donc de quatre heures, et non de cinq.
Pourquoi ma tâche s’exécute-t-elle plus souvent que prévu ?
Lorsque les champs du jour du mois et du jour de la semaine sont tous deux limités, cron s’exécute les jours qui correspondent à l’un ou l’autre. Par exemple, 0 0 15 * 1 s’exécute le 15 ainsi que tous les lundis. Définissez l’un des deux champs sur * pour ne tenir compte que de l’autre.
Quel fuseau horaire cron utilise-t-il ?
Le fuseau horaire système du serveur qui exécute le démon cron, sauf si la crontab définit CRON_TZ ou TZ (pris en charge par cronie). Les ordonnanceurs cloud utilisent souvent UTC par défaut. Activez l’option UTC pour voir les heures utilisées par un serveur en UTC.
Puis-je utiliser les secondes ou un champ année ?
Pas avec cron standard, dont la résolution est d’une minute et qui comporte cinq champs. Les formats à six ou sept champs avec secondes et années sont propres à Quartz, Spring et à des bibliothèques similaires ; cet outil ne les prend pas en charge.
Le dimanche correspond-il à 0 ou à 7 ?
Les deux. Dans le champ du jour de la semaine, 0 et 7 correspondent tous deux au dimanche, 1 au lundi et 6 au samedi. Vous pouvez aussi utiliser les noms de trois lettres SUN à SAT.
Confidentialité
L’expression est analysée et les heures d’exécution sont calculées dans votre navigateur. Aucune donnée saisie n’est envoyée, stockée ou incluse dans les statistiques.