Français

Outils de développement · Générateur Crontab

Exemples d'expressions Cron : toutes les heures, tous les soirs, en semaine, le premier du mois

· Comment ça marche

cron Calendrier exemples planification

Plusieurs cartes de planification à cinq champs disposées à côté des marques d'horloge et de calendrier
Illustration vectorielle originale de ToolAcre

Dix planifications couvrent la plupart des véritables crontabs. Cet article donne l'expression de chacun, explique les champs et souligne celui sur lequel les gens se trompent presque toujours.

Vous avez besoin de « premier du mois à 06 :00 » et les résultats de la recherche ne sont pas d'accord – un ensemble d'expressions vérifiées avec raisonnement

Une réponse copiée pour « premier du mois à 06 :00 » n'est utile que si chaque position peut être justifiée. Dans l'ordre de cinq champs, `0 6 1 * *` signifie minute zéro, heure six, premier jour du mois, chaque mois et chaque jour de la semaine. La lecture des champs évite qu'un exemple attrayant ne devienne une dépendance de production inexpliquée.

Les exemples ici restent dans la grammaire exercée par l'analyseur et les tests de ToolAcre. Il s'agit de fragments de planning et non de définitions de tâches complètes. Le navigateur peut les décrire et afficher les futures horloges murales candidates dans une zone sélectionnée, mais il ne connaît pas la commande, les autorisations ou l'hôte qui pourrait éventuellement les utiliser.

Chaque minute, toutes les 5 minutes, toutes les heures — * * * * *, */5 * * * * et 0 * * * *, et pourquoi le premier 0 est important

`* * * * *` sélectionne chaque valeur minute de chaque heure et date. `*/5 * * * *` réduit les minutes à 0, 5, 10 et ainsi de suite jusqu'à 55. `0 * * * *` sélectionne uniquement la minute zéro, produisant un candidat en début de chaque heure. Le zéro non significatif est donc la différence entre les positions de soixante minutes et une.

Les trois formulaires apparaissent soit dans une syntaxe prédéfinie, soit dans une syntaxe testée. Une étape s'étend à partir de la limite inférieure du champ des minutes, tandis qu'un caractère générique étend chaque valeur autorisée de 0 à 59. Utilisez l'aperçu pour inspecter les exécutions strictement après maintenant ; n'en déduisez pas que l'outil a démarré un processus récurrent simplement parce qu'il peut énumérer les heures.

Quotidiennement à la fois et deux fois par jour — 30 2 * * * et 0 6,18 * * *

Tous les jours à 02 :30 est `30 2 * * *` : minute 30 et heure 2 avec champs de calendrier sans restriction. Deux fois par jour à 06 :00 et 18 :00 est `0 6,18 * * *` ; la virgule combine deux valeurs d'heure tandis que la minute reste fixe. Les deux sont plus faciles à consulter lorsque la liste des heures est explicite plutôt que dupliquée sur deux lignes.

Un fuseau horaire sélectionné modifie les instants affichés pour les mêmes champs d'horloge murale. ToolAcre calcule chaque candidat comme heure murale locale dans cette zone et omet une heure locale qui n'existe pas lors d'un changement d'horloge vers l'avant. Ce comportement d'aperçu appartient à cet outil ; l'article ne le généralise pas en une promesse concernant chaque démon.

Jours de la semaine et week-end — 0 8 * * 1-5 et 0 10 * * 0,6, avec la mise en garde concernant la numérotation du dimanche

Les jours de semaine à 08 :00 sont `0 8 * * 1-5` et les matins de week-end à 10 :00 sont `0 10 * * 0,6`. Cet analyseur accepte le dimanche comme 0 ou 7 et normalise les deux à la même valeur. Les noms sont également pris en charge, donc `MON-FRI` peut remplacer `1-5` sans modifier les jours de la semaine étendus.

Évitez de régler le jour du mois en même temps, sauf si une union OU est souhaitée. `0 8 1 * 1-5` ne signifie pas les jours de la semaine uniquement le premier. Il comprend le premier de chaque mois ainsi que chaque jour de la semaine. Le générateur avertit chaque fois que les deux champs de jour sont restreints et place « ou » dans la phrase résultante.

Mensuel, trimestriel et annuel — 0 6 1 * *, 0 6 1 1,4,7,10 * et 0 0 1 1 *

Mensuel à 06 :00 le premier est `0 6 1 * *`. Trimestriel, le premier jour de janvier, avril, juillet et octobre est le `0 6 1 1,4,7,10 *`. Une exécution annuelle à minuit le 1 janvier correspond à `0 0 1 1 *`, qui est également l'extension utilisée par les alias `@yearly` et `@annually` pris en charge.

Ces exemples utilisent un jour qui existe dans chaque mois sélectionné. ToolAcre accepte les combinaisons impossibles comme syntaxiquement légales mais avertit lorsque, par exemple, le jour 30 est associé uniquement à février. Février 29 reçoit un avertissement d'année bissextile. La validité du calendrier est donc apparue séparément de la grammaire des champs plutôt que cachée derrière un message générique invalide.

La planification du dernier jour n'est pas exprimable avec les opérateurs à cinq champs pris en charge

La grammaire prise en charge n'a pas d'opérateur de dernier jour. `L` est rejeté plutôt que traduit, et le jour 31 ne couvre pas les mois de trente jours ou février. Le classeur proposait un test de date côté commande, mais ce référentiel n'exécute ni ne vérifie les commandes. L'article ne présente donc pas cette solution de contournement en tant que fonctionnalité de générateur prise en charge.

Traitez le « dernier jour de chaque mois » comme une exigence qui dépasse ce langage d'expression. Sélectionnez un planificateur ou une stratégie de commande documentée par la cible réelle et testez-le là-bas. ToolAcre reste utile pour les cinq champs ordinaires autour de cette décision, mais le succès de la validation ne peut pas fabriquer un opérateur que son analyseur n'implémente pas.

Les champs de secondes et les opérateurs étrangers sont rejetés par cet analyseur

Les expressions classiques de cet itinéraire n'ont pas de position en secondes ou en année. Six champs sont refusés avec des conseils sur un style de planificateur orienté secondes. L'analyseur rejette également `?`, `#`, `L` et `W` car son lecteur de valeurs accepte uniquement les nombres, les noms à trois lettres pris en charge, les plages, les virgules, les barres obliques et les caractères génériques.

Une exigence de sous-minute ne peut donc pas être représentée ici. Une expression provenant d’un autre planificateur ne peut pas non plus être déclarée équivalente simplement parce qu’elle semble similaire. Comptez les positions, vérifiez le support de l'opérateur et reconstruisez l'ensemble prévu avec la grammaire cible. La sémantique omise doit rester une lacune explicite et non une approximation accidentelle.

À retenir : construisez à partir de ces dix - et utilisez le générateur Crontab pour en adapter un et relire le résultat

Les plannings courants deviennent plus sûrs lorsque chaque jeton a une raison : un zéro épingle une limite, une virgule nomme des alternatives, une plage inclut les deux extrémités et une étoile ouvre le champ. Les préréglages fournissent plusieurs points de départ, notamment les formulaires minute, quart d'heure, heure, jour, semaine, dimanche, mensuel et annuel.

Adaptez le préréglage le plus proche, lisez la phrase générée et scannez les cinq fois suivantes dans la zone prévue de la machine. Cette séquence vérifie l'intention de l'expression tout en conservant le déploiement en dehors du navigateur. Un bon exemple n’est pas seulement prêt à être copié ; il est suffisamment petit pour qu'un autre examinateur puisse reconstituer la raison pour laquelle chaque champ est présent.