Analyseur d'expressions Cron
Analysez les expressions cron et obtenez une explication lisible par l'homme du moment où elles s'exécutent. Parfait pour les développeurs et les administrateurs système qui ont besoin de créer ou de comprendre les planifications des tâches cron. Évitez les erreurs de planification en visualisant exactement quand vos expressions cron s'exécuteront.
Questions fréquemment posées
Une expression cron est une chaîne de 5 ou 6 champs qui définit un calendrier pour les tâches automatisées dans les systèmes de type Unix. Les champs représentent : les minutes (0-59), les heures (0-23), le jour du mois (1-31), le mois (1-12) et le jour de la semaine (0-7, où 0 et 7 correspondent au dimanche). Par exemple, "0 9 * * 1" signifie "exécuter à 9h00 tous les lundis".
Commencez par cinq astérisques (* * * * *) représentant les minutes, les heures, le jour, le mois et le jour de la semaine. Remplacez les astérisques par des valeurs ou des plages spécifiques. Par exemple : "30 14 * * *" s'exécute à 14h30 tous les jours, "0 0 1 * *" s'exécute à minuit le 1er de chaque mois, "*/15 * * * *" s'exécute toutes les 15 minutes. Utilisez notre analyseur pour vérifier que votre expression répond bien à vos attentes.
Un astérisque signifie "chaque" ou "n'importe quelle" unité de temps. Par exemple, * dans le champ de l'heure signifie toutes les heures, * dans le champ du jour signifie tous les jours. Ainsi, "0 * * * *" signifie "à la minute 0 de chaque heure" (toutes les heures), tandis que "* * * * *" signifie "toutes les minutes". Il s'agit d'un caractère générique qui correspond à toutes les valeurs possibles pour ce champ.
Utilisez la syntaxe de la valeur du pas : */N. Toutes les 5 minutes : '*/5 * * * *'. Toutes les 3 heures : '0 */3 * * *'. La syntaxe */N signifie "chaque Nième valeur" - donc */5 dans le champ des minutes signifie les minutes 0, 5, 10, 15, etc. Vous pouvez également utiliser des plages avec des pas comme "0-30/5" pour toutes les 5 minutes pendant la première demi-heure.
Oui ! Utilisez 1-5 dans le champ du jour de la semaine (5e champ). Par exemple, "0 9 * * 1-5" fonctionne à 9 heures du lundi au vendredi. Vous pouvez également énumérer des jours spécifiques : "0 9 * * 1,3,5" fonctionne à 9 heures du matin uniquement le lundi, le mercredi et le vendredi.
Il s'agit de deux façons différentes de spécifier les jours d'exécution d'un travail. Le jour du mois (3e champ) utilise les dates 1-31, tandis que le jour de la semaine (5e champ) utilise les dates 0-7 (0 et 7 correspondent au dimanche). Si les deux sont spécifiés (pas *), le travail est exécuté lorsque l'UNE ou l'AUTRE des conditions est remplie. Par exemple, '0 0 1 * 1' s'exécute à minuit le 1er de chaque mois ET tous les lundis.
De 9 heures à 17 heures en semaine : "0 9-17 * * 1-5" au début de chaque heure. Toutes les 30 minutes pendant les heures de bureau : '*/30 9-17 * * 1-5'. La plage horaire 9-17 couvre la période de 9 heures à 17 heures, et 1-5 limite l'exécution à la période du lundi au vendredi.
Ils sont équivalents - ils s'exécutent tous les deux à minuit tous les jours. De nombreuses implémentations de cron prennent en charge des chaînes spéciales comme @daily, @hourly, @weekly, @monthly et @yearly en tant que raccourcis. Ces raccourcis sont plus lisibles mais moins flexibles que les expressions complètes. Utilisez les raccourcis pour les intervalles courants et les expressions complètes pour les programmes personnalisés.
Les expressions cron standard s'exécutent en fonction de l'heure système du serveur. Pour gérer les fuseaux horaires, vous devez soit définir correctement le fuseau horaire de votre serveur, soit calculer le décalage horaire. Certaines implémentations avancées de cron prennent en charge les spécifications de fuseau horaire, mais le format de base à 5 champs n'inclut pas d'informations sur le fuseau horaire.
Utilisez notre analyseur d'expressions Cron pour vérifier que votre expression contient bien la description de l'horaire attendu. L'analyseur explique en langage clair quand votre tâche sera exécutée, ce qui vous permet de détecter des erreurs telles que '0 9 31 2 *' (le 31 février n'existe pas) avant de la déployer en production.
