Résumé
Ce générateur d'expression cron construit et vérifie des planifications cron standard à cinq champs directement dans votre navigateur. Choisissez un préréglage ou modifiez les champs minute, heure, jour du mois, mois et jour de la semaine. L'outil explique la planification en clair, détaille chaque champ et liste les cinq prochaines exécutions en UTC ou dans votre propre fuseau horaire. Il applique la règle standard de cron pour combiner jour du mois et jour de la semaine. Rien n'est envoyé à un serveur et aucune inscription n'est nécessaire.
Générateur d'expression cron : construisez et prévisualisez vos planifications en quelques secondes
Choisissez un préréglage ou saisissez les cinq champs. Vous obtenez une explication en clair, le détail champ par champ et les cinq prochaines exécutions, le tout calculé localement.
Ce que l'outil fait de vos cinq champs
Il analyse chaque champ séparément
Chaque champ accepte une valeur unique, une liste (1,15), un intervalle (1-5), un pas (*/10) ou un mélange. Les noms de mois et de jours comme JAN ou MON-FRI fonctionnent. Les valeurs hors plage et les intervalles inversés sont signalés sur le champ exact qui pose problème.
Il applique la vraie règle de correspondance de cron
Une heure correspond quand ses minutes, ses heures et son mois sont dans vos listes et que le test sur le jour est validé. Si le jour du mois et le jour de la semaine sont tous deux restreints, cron retient l'un ou l'autre. Si l'un des deux commence par un astérisque, les deux doivent correspondre.
Il parcourt le calendrier pour lister les exécutions
À partir de la minute en cours, le script parcourt les jours, garde ceux qui passent le test, puis liste les heures et minutes correspondantes dans l'ordre. Il regarde jusqu'à huit ans devant lui, ce qui suffit pour trouver une planification du 29 février.
Les cinq champs, dans l'ordre où cron les lit
Une ligne cron se compose de cinq champs séparés par des espaces, suivis de la commande. L'ordre ne change jamais : minute, heure, jour du mois, mois, jour de la semaine. La plupart des erreurs viennent d'une inversion entre les deux premiers champs, si bien qu'une tâche prévue pour 14 h tourne à la minute 14 de chaque heure. Lisez de gauche à droite et énoncez chaque champ à voix haute avant de valider.
- Minute : 0-59
- Heure : 0-23, au format 24 heures
- Jour du mois : 1-31
- Mois : 1-12 ou JAN-DEC
- Jour de la semaine : 0-7 ou SUN-SAT, où 0 et 7 désignent tous deux le dimanche
- Symboles : * pour toutes les valeurs, , pour une liste, - pour un intervalle, / pour un pas
Les pièges de cron qui font perdre un week-end
L'environnement est presque vide
Cron lance les tâches avec un PATH minimal et sans profil de shell. Un script qui fonctionne dans votre terminal peut échouer sans bruit depuis cron. Utilisez des chemins absolus pour la commande et pour tout fichier lu, et redirigez la sortie vers un fichier journal pour voir les erreurs.
Un signe de pourcentage termine votre commande
Dans une ligne crontab, un % non échappé est traité comme un saut de ligne, et tout ce qui suit est envoyé à la commande comme entrée. Les formats de date comme date +%F exigent un antislash devant chaque %. Placez la commande dans un script et le problème disparaît.
Chaque minute est rarement ce que vous voulez
Une tâche lancée chaque minute qui dure 90 secondes se chevauche avec elle-même. Protégez les tâches longues par un verrou, ou passez par une file d'attente. Si un passage toutes les quelques minutes suffit, un pas comme */5 ménage davantage les services appelés.
Les fuseaux horaires ne sont pas les vôtres
Une crontab utilise le fuseau horaire du serveur. Les planificateurs hébergés utilisent en général l'UTC. Une tâche réglée sur 9 h peut partir à 17 h à Taipei ou à 4 h à Bangkok selon l'endroit où se trouve la machine. Indiquez le fuseau horaire dans un commentaire à côté de la ligne.
Jour du mois et jour de la semaine se combinent en OU
Restreindre les deux champs ne réduit pas la planification, cela l'élargit. Si vous voulez le premier lundi du mois, aucune expression à cinq champs ne peut le dire directement. Lancez la tâche chaque lundi et laissez le script vérifier que la date est inférieure ou égale à 7.
Testez la planification avant la tâche
Vérifiez d'abord les cinq prochaines exécutions ici, puis lancez la commande à la main avec le même environnement. Deux petites vérifications valent mieux que déboguer une sauvegarde nocturne qui n'a jamais tourné. Commencez par une commande anodine, comme écrire la date dans un fichier.
Questions sur les expressions cron
Ce générateur d'expression cron est-il gratuit, et envoie-t-il ma planification quelque part ?
Combien de champs compte une expression cron ?
Pourquoi ma tâche tourne-t-elle certains jours inattendus quand je règle à la fois le jour du mois et le jour de la semaine ?
Quel fuseau horaire utilisent les heures des prochaines exécutions ?
Les mêmes expressions fonctionnent-elles dans GitHub Actions, Kubernetes et crontab ?
Que signifie un pas comme */15 ou 10/20 ?
Peut-on utiliser des noms comme MON-FRI ou JAN ?
Que se passe-t-il lors des changements d'heure ?
Vous cherchez la prochaine chose à construire ?
Une tâche cron est un bon premier backend pour un projet personnel. Le générateur gratuit de la page d'accueil vous fournit en un clic une spécification complète du projet, avec stack et périmètre.