Expression cron

Expliquer un cron Linux, Spring ou Quartz, ou le construire champ par champ, et lister les 10 prochains déclenchements à l’heure locale de cet ordinateur. Construire une crontab

Construire une crontab

Champs

Quand ce plan se déclenche

Choisissez Linux Crontab (5 champs), Spring @Scheduled (6 champs, secondes en tête) ou Quartz (6 champs, ou 7 avec l’année). La page explique chaque champ et liste les 10 prochains déclenchements sur l’horloge de cet ordinateur. Elle n’installe pas la tâche. Pour la construire à partir d’une heure ou de @daily, utilisez le générateur crontab. Les estampilles sont l’horodatage Unix.

Comment l’utiliser

  1. Format vaut Linux Crontab (5), Spring @Scheduled (6) ou Quartz (6–7). La ligne sous le menu donne l’ordre des champs et quel numéro est le dimanche.
  2. Saisissez l’expression, ouvrez Modèle, ou modifiez chaque ligne sous Champs. Modèle propose Chaque minute, Chaque heure, Chaque jour à minuit, Chaque dimanche à minuit, Jours ouvrés, 9 h–17 h, toutes les 15 minutes, et Premier jour du mois à minuit. Les boutons sous le champ chargent cette liste pour le format actuel, plus Chaque jour à 02:00, Week-end à 09:00, Minutes 5/15, Toutes les 2 heures à la minute 30, et le 1er janvier. Spring et Quartz ajoutent Dernier jour du mois à 23:00, le jour ouvré le plus proche du 15, le premier lundi à 10:15 et le dernier vendredi à 10:15. Quartz ajoute aussi le 1er janvier 2030. Le lien à côté des boutons ouvre le générateur crontab. Chaque ligne a Chaque, Plage, Pas et Valeurs. Valeurs affiche les nombres : secondes et minutes 0–59, heures 0–23, jours 1–31, mois 1–12, jours SUN–SAT. Spring et Quartz ajoutent Non fixé (?), Dernier jour (L), Dernier jour ouvré (LW), Jour ouvré le plus proche (W), Nième jour (#) et Dernier jour de semaine (nL). Un changement sous Champs réécrit l’expression. Un champ que les lignes ne peuvent pas montrer reste sur Personnalisé et garde le texte.
  3. Mettre à jour en tapant est coché. Expliquer ne court qu’une fois. Afficher un exemple charge l’exemple de jours ouvrés du format actuel : Linux */15 9-17 * * 1-5, Spring 0 */15 9-17 * * MON-FRI, Quartz 0 */15 9-17 ? * MON-FRI.
  4. Le résultat nomme chaque champ, puis 10 prochains déclenchements. Tout effacer vide l’expression et le résultat et remet chaque champ sur Chaque. Copier le résultat copie ce texte. Changer de format ajoute ou retire les secondes, transforme ? en * sous Linux, et réécrit les numéros de jour en SUN–SAT pour garder les mêmes jours.

Quelles dates correspondent

Linux, c’est minute, heure, jour du mois, mois, jour de la semaine. Dimanche est 0, 7 ou SUN. Lundi est 1. Il n’y a pas de ?, L, W ni #. Si le jour du mois et le jour de la semaine sont tous les deux limités, une seule correspondance suffit, et le résultat le dit.

Spring ajoute les secondes devant. Le dimanche garde les mêmes numéros que Linux. ? ignore ce champ. L est le dernier jour du mois. 15W est le jour ouvré le plus proche du 15 et reste dans le mois. LW est le dernier jour ouvré. MON#1 est le premier lundi. 6L est le dernier samedi, car 6 est samedi ici.

Quartz reprend les six champs, plus une année facultative comme 2024-2030. Dimanche est 1 ou SUN. Lundi est 2. Samedi est 7. 6L est le dernier vendredi. Le jour ou le jour de semaine doit être ?, par exemple 0 0 2 * * ? pour 02:00 chaque jour. Si les deux sont précis, le résultat liste quand même un déclenchement dès qu’un champ correspond, et il avertit. SUN–SAT et JAN–DEC marchent dans n’importe quelle casse et désignent le même jour ou le même mois dans les trois formats.

Un tiret est une plage, une virgule une liste, une barre un pas. */15 part du début du champ tous les 15. 5/15 part de 5 jusqu’à la fin, donc les minutes sont 5, 20, 35 et 50. Les heures sont locales, pas UTC. Avec un champ secondes, la liste avance seconde par seconde ; sinon minute par minute.

Où cela sert

  • Vérifier une ligne crontab comme 0 2 * * * avant de l’installer.
  • Écrire le Spring 0 0 2 * * * pour 02:00 chaque jour.
  • Vérifier le Quartz 0 15 10 ? * 6L (dernier vendredi à 10:15) ou 0 0 23 L * ? (23:00 le dernier jour du mois).

Questions

Pourquoi 02:00 a cinq champs sous Linux et six sous Spring ?

Linux n’a pas de champ secondes, donc 02:00 s’écrit 0 2 * * *. Spring et Quartz mettent les secondes en tête : la même heure est 0 0 2 * * *, ou 0 0 2 * * ? en Quartz.

Que veut dire le point d’interrogation ?

Ce champ n’est pas fixé. Quartz le veut sur le jour du mois ou sur le jour de la semaine. 0 0 2 * * ? est 02:00 chaque jour.

1 est-il dimanche ?

Sous Linux et Spring, 1 est lundi et dimanche est 0 ou 7. Sous Quartz, 1 est dimanche et 2 est lundi. SUN est dimanche dans les trois.

L’horloge ne suit pas UTC.

10 prochains déclenchements utilise le fuseau local de cet ordinateur.