Cron Functionality (Fonctionnalité de Cron)

Cette section décrit en détail la fonctionnalité CRON dans Monarch Server. (Pour l'anglais, cliquez ici.)

 

Qu'est-ce que CRON ?

CRON est un planificateur de tâches basé sur le temps, traditionnellement utilisé dans les systèmes d'exploitation de type Unix, mais hérité par d'autres depuis, conçu pour exécuter automatiquement des commandes ou des scripts à des moments ou des intervalles spécifiques.

Il est généralement utilisé pour automatiser les tâches répétitives, telles que les sauvegardes, les notifications par courrier électronique, la maintenance du système et le traitement des données.

 

CRON dans le Monarch Server

Le Monarch Server possède des modules d'arrière-plan qui fonctionnent en permanence et exécutent des tâches programmées.

Une fois configurés, les modules vérifient les calendriers des tâches associées pour qu'elles s'exécutent aussi fréquemment que toutes les minutes (en supposant une configuration correcte de l'instance) sur la base d'expressions CRON stockées en interne, qui spécifient les heures ou les intervalles exacts auxquels les tâches doivent s'exécuter.

Dans l'interface de planification de Monarch Server (version 2024.1+), une nouvelle option permet de fournir une chaîne CRON définie par l'utilisateur au lieu d'utiliser l'interface de planification pour la définir via les options présentées par (et limitées à) les options de l'interface.

Lorsque cette option est sélectionnée, l'utilisateur peut taper ou coller la chaîne CRON souhaitée.

 

Format d'expression CRON du Monarch Server

Les expressions CRON se composent de cinq champs qui définissent la programmation, ainsi que la commande ou le script à exécuter. Le format standard est le suivant :

 

Symboles d'expression CRON du Monarch Server

Symbole

Description

*

Caractère générique, signifiant "toutes" les valeurs de ce champ.

,

permet de spécifier plusieurs valeurs dans le même champ (par exemple, 1,15 pour le champ minute signifie la première et la quinzième minute).

-

définit une plage de valeurs (par exemple, 9-17 pour les heures, c'est-à-dire de 9 heures à 17 heures).

/

Définit une valeur de pas (par exemple, */15 pour minutes signifie toutes les 15 minutes).

 

REMARQUE

Tous les systèmes CRON ne prennent pas en charge les caractères améliorés tels que L, W, # ou ?.

Le CRON standard (selon l'implémentation du Monarch Server) prend en charge les caractères de base tels que *, ,, - et /.

Les caractères avancés tels que L, W, ? et # sont généralement utilisés dans Quartz ou d'autres programmateurs améliorés et ne sont PAS pris en charge par Monarch Server.

 

Exemples d'expressions CRON

Voici quelques tâches CRON typiques avec leur calendrier :

Expression CRON

Calendrier

* * * * *

Toutes les minutes

0 0 * * *

Tous les jours à minuit

0 0 * * 1

Tous les lundis à minuit

*/15 9-17 * * 1-5

Toutes les 15 minutes, de 9h à 17h, du lundi au vendredi

 

Historiquement, Monarch Server a stocké les plannings définis par les utilisateurs en interne, en utilisant la syntaxe CRON. Cependant, après Monarch Server 2024.1, les administrateurs peuvent définir les horaires en utilisant explicitement la syntaxe CRON, ce qui permet des définitions d'horaires plus efficaces et plus compliquées/personnalisées.

 

Générer des expressions CRON

Les expressions CRON peuvent être créées à l'aide des options suivantes :

  • Copier/coller de chaînes existantes (en supposant qu'elles soient conformes à la notation CRON / CronTab traditionnelle en 5 parties utilisée dans le Monarch Server)
  • Dérivation d'expressions directement basées sur la connaissance existante / l'expérience de CRON
  • En utilisant les échantillons fournis dans le présent document (avec d'éventuelles modifications si vous le souhaitez)
  • Utiliser des outils / ressources en ligne qui fournissent d'autres exemples ou aident à créer de nouvelles expressions de manière interactive. En voici quelques exemples utiles:

 

REMARQUE : certains programmes CRON nécessitent l'ajout d'un script dans le cadre du processus pour permettre des exclusions/exceptions en dehors du champ d'application de la déclaration CRON/des limites de la construction.

 

Avantages des expressions CRON

L'utilisation des chaînes CRON pour la programmation présente plusieurs avantages.

  1. Précision et flexibilité
    • Programmation fine : Les chaînes CRON permettent une programmation précise à la minute près. Vous pouvez spécifier des tâches à exécuter à des moments précis (par exemple, toutes les heures, certains jours ou tous les mois).
    • Programmations complexes : Les chaînes CRON peuvent répondre à des besoins de programmation simples et complexes, tels que "toutes les 15 minutes pendant les heures de bureau". Cette flexibilité est essentielle pour les tâches qui nécessitent une programmation spécifique.
    • Motifs et récurrence : Grâce à des symboles tels que * (wildcard), / (pas) et plages (-), CRON peut définir des intervalles récurrents sans avoir à spécifier chaque heure individuellement.
  2. Cohérence et fiabilité
    • Exécution automatisée : Une fois qu'une tâche CRON est configurée, elle peut s'exécuter automatiquement aux heures prévues sans aucune intervention manuelle. Cette fiabilité garantit que les tâches critiques peuvent être exécutées de manière cohérente et dans les délais prévus, en supposant que l'instance de Monarch Server soit correctement configurée.
    • Répétabilité : Les tâches CRON s'exécutent de manière cohérente à travers les fuseaux horaires, les redémarrages du système et d'autres changements environnementaux, ce qui les rend très fiables pour les tâches qui doivent être effectuées régulièrement.
  3. Simplicité et facilité d'utilisation
    • Syntaxe concise : Les chaînes CRON utilisent une syntaxe compacte et standardisée, facile à comprendre et à personnaliser une fois apprise. Vous trouverez une liste complète dans la suite de ce document.
    • Configuration minimale : Les chaînes CRON nécessitent une configuration minimale et peuvent être facilement configurées par un administrateur dans l'interface d'administration du Monarch Server. Cette simplicité est particulièrement utile pour les administrateurs système qui gèrent plusieurs tâches ou lorsqu'une tâche nécessite plusieurs planifications.
  4. Des applications polyvalentes pour tous les systèmes
    • Large compatibilité : CRON est disponible sur presque tous les systèmes de type Unix, ce qui en fait un outil de planification universel pour Linux, macOS et d'autres systèmes. Cette portabilité est particulièrement avantageuse dans les environnements hétérogènes.
    • Adapté à diverses tâches : CRON peut planifier presque n'importe quelle commande ou script, qu'il s'agisse d'un script de maintenance, d'une sauvegarde de données ou d'une notification par courrier électronique, ce qui le rend polyvalent pour de nombreux besoins d'automatisation.
  5. Personnalisable pour une programmation complexe et conditionnelle
    • Exceptions et logique conditionnelle : En combinant CRON avec des scripts de processus ou des contrôles dans le code exécutable, vous pouvez créer des programmes conditionnels (par exemple, exclure certaines dates, s'adapter aux jours fériés).

 

Exemples courants de CRON

Voici une liste d'expressions CRON courantes, accompagnées d'une description de leur fonction. Ces exemples peuvent vous aider à répondre aux besoins les plus courants en matière d'ordonnancement.

Pour référence, le format standard est le suivant :

Expression CRON

Description

* * * * *

Chaque minute

*/5 * * * *

Toutes les 5 minutes

0 * * * *

Toutes les heures, à l'heure

0 */2 * * *

Toutes les 2 heures, à l'heure

0 0 * * *

Tous les jours à minuit

0 9 * * *

Tous les jours à 9h00

0 0 * * 1

Tous les lundis à minuit

0 0 1 * *

Le premier jour de chaque mois, à minuit

0 0 1 1 *

Tous les 1er janvier à minuit

0 0 * * 0

Tous les dimanches à minuit

*/15 9-17 * * 1-5

Toutes les 15 minutes pendant les heures d'ouverture (de 9h00 à 17h00), du lundi au vendredi

0 12 * * 1-5

Tous les jours de la semaine à midi

0 0 1-7 * 0

Le premier dimanche de chaque mois, à minuit

0 0 */3 * *

Tous les trois jours

*/10 0 1 1 *

Toutes les 10 minutes le 1er janvier, entre minuit et 0h59

0 0 25 12 *

Tous les jours de Noël à minuit

30 14 1 * *

Le premier jour de chaque mois à 14h30

0 8,16 * * *

Tous les jours à 8h00 et à 16h00

*/5 8-10 * * *

Le premier dimanche de chaque mois

0 0 1-7 * 0

Le premier dimanche de chaque mois

0 6,18 * * *

Tous les jours à 6h00 et 18h00

*/30 * * * *

Toutes les 30 minutes

0 22 * * 1-5

Tous les jours de la semaine à 22h00

0 7 * * 1

Tous les lundis à 7h00

*/2 * * * 3

Toutes les 2 minutes, le mercredi

15 14 1 * *

Tous les mois, le 1er, à 14h15

0-4 14 * * *

Toutes les minutes à partir de 14h00 et jusqu'à 14h05 tous les jours

5 * * * *

À chaque heure 5 minutes

15 10 15 * *

Le 15ème jour de chaque mois à 10h15

15 10 15 * 1-5

À 10 h 15, du lundi au vendredi

0 0 15-21 * 5

Le troisième vendredi de chaque mois, à 10h15

 

Exemples de CRON avec conditions

Les expressions CRON conditionnelles sont des outils puissants pour définir des programmes qui dépendent de jours, d'heures et de séquences spécifiques, tels que "toutes les 10 minutes les jours de semaine entre 9 heures et 17 heures" ou des intervalles spécifiques à l'intérieur d'une plage définie. 

Pour référence, le format standard est le suivant :

Voici quelques exemples d'expressions CRON complexes et conditionnelles :

Expression CRON

Description

0 12 5 * *

Tous les cinq jours du mois à midi

15 10 15 * *

Le 15 de chaque mois à 10h15

0 0 9-17 * * 1-5

Toutes les heures, de 9h00 à 17h00, du lundi au vendredi

*/7 * * * *

Toutes les 7 minutes

5 * * * *

Toutes les heures, à 5 heures et demie

*/10 14-15 * * 1-5

Toutes les 10 minutes de 14h00 à 14h50 tous les jours (du lundi au vendredi uniquement)

*/10 14-15 * * *

Toutes les 10 minutes de 14h00 à 14h50 tous les jours (lundi à dimanche)

15 8 15 6 *

Le 15 juin de chaque année à 8h15

0 5 1/2 * *

Tous les deux jours à 5h00 du matin

30 1 1 1 *

Le premier jour de chaque année, à 1h30 du matin

*/15 9-17 * * 1-5

Toutes les 15 minutes pendant les heures de bureau (de 9h00 à 17h00), du lundi au vendredi

0 8-18/2 * * *

Toutes les 2 heures de 8h00 à 18h00 tous les jours

0 8-18/3 * 1,3,6,9 1-5

Toutes les 3 heures, de 8h00 à 18h00, du lundi au vendredi, uniquement pendant certains mois

*/7 6,18 * 2,4,6 1-5

Toutes les 7 minutes à 6h00 et 18h00 les mois pairs, du lundi au vendredi

0 9-17/4 * *

Toutes les 4 heures de 9h00 à 17h00 uniquement en Janvier

 

Exemples CRON avec exceptions

La syntaxe CRON standard ne prend pas directement en charge les "exceptions" (comme le fait de sauter certaines dates), mais vous pouvez contourner cette limitation en combinant plusieurs tâches CRON ou en gérant les exceptions de manière programmatique dans des scripts qui font partie des activités invoquées par les calendriers CRON ou la conception du processus.

Pour référence, le format standard est le suivant :

 

Voici quelques façons de gérer les exceptions ou les cas particuliers :

Expression CRON

Description

0 9 * * 1-5

Uniquement les jours de la semaine, à l'exception de jours spécifiques (par exemple, sauter les jours fériés)

Description: Exécution à 9h00 du lundi au vendredi.

Exception: Si vous souhaitez ignorer certaines dates (comme les jours fériés), vous pouvez configurer le processus de manière à ce qu'il vérifie une liste de jours fériés dans votre code et qu'il ignore ces dates par programme.

0 0 * * 1-5

Tous les jours à minuit, sauf le week-end

Description: S'exécute tous les jours de la semaine à minuit, à l'exception des samedis et des dimanches.

0 0 1 * 1-5

Premier jour du mois, sauf le week-end

Description: S'exécute à minuit le premier jour de semaine de chaque mois (si le premier jour tombe un week-end, il ne s'exécute pas).

0 9-11,13-17 * * 1-5

Toutes les heures pendant les heures d'ouverture, à l'exception de l'heure du déjeuner

Description: Circule toutes les heures, de 9h00 à 17h00, à l'exception de l'heure du déjeuner (12h00), du lundi au vendredi.

0 0 0 * * 5

Tous les vendredis, sauf le dernier vendredi du mois

Description: S'exécute tous les vendredis, mais pour exclure le dernier vendredi, ajoutez une vérification conditionnelle dans votre code pour sauter si c'est le dernier vendredi du mois

*/15 0-1,3-23 * * *

Tous les quarts d'heure, sauf de 2h00 à 3h00 du matin

Description: Fonctionne toutes les 15 minutes, sauf entre 2h00 et 3h00 du matin (utile pour le passage à l'heure d'été ou d'autres périodes de maintenance)

0 0 1-14,16-31 * *

Exécuter les jours spécifiques du mois, à l'exception du 15

Description: Cela permet d'éviter le 15e jour du mois.

0 0 1 * *

Tous les mois le 1er, sauf si cela tombe un week-end

Description: Il est exécuté le 1er du mois, mais comprend une étape de script dans le processus pour vérifier / sauter si cela tombe sur un samedi ou un dimanche.

 

© 2024 Altair Engineering Inc. All Rights Reserved.

Intellectual Property Rights Notice | Technical Support