Arrêtez de chercher la syntaxe Cron — il y a un générateur pour cela
Les expressions Cron sont l'une de ces choses que l'on utilise constamment mais que l'on ne retient jamais. Voici ce que signifient exactement les cinq champs, les erreurs qui font souffrir les utilisateurs, et pourquoi un générateur en ligne d'expression Cron est simplement l'approche plus intelligente.
Il est 2h. Un déploiement est planifié pour 6h. Vous devez vérifier à nouveau que la tâche cron s'active effectivement à l'heure correcte. Alors vous ouvrez une nouvelle onglet et tapez « syntaxe cron » dans Google. Encore.
C'est un rite de passage. Chaque développeur ayant jamais touché un serveur Linux l'a fait au moins une fois — et la plupart d'entre nous l'ont fait plus de fois qu'ils ne le souhaitent. Les expressions cron sont l'un de ces éléments que vous utilisez constamment, mais que vous ne retenez jamais vraiment. La syntaxe se situe dans une zone inconfortable entre « trop simple pour être recherchée » et « assez spécifique pour être mal interprétée ».
Il y a une meilleure méthode. Utilisez un générateur d'expression cron en ligne et laissez l'outil gérer la syntaxe pendant que vous vous concentrez sur ce qui compte vraiment.
Pourquoi la syntaxe cron refuse de s'ancrer
Cron possède cinq champs. Cinq. C'est tout. Et pourtant, l'ordre fait toujours mal à tout le monde :
# ┌───────────── minute (0–59)
# │ ┌───────────── hour (0–23)
# │ │ ┌───────────── day of month (1–31)
# │ │ │ ┌───────────── month (1–12)
# │ │ │ │ ┌───────────── day of week (0–6, Sunday=0)
# │ │ │ │ │
* * * * * command
Le problème n'est pas qu'il est difficile — c'est qu'il y a juste assez de caractères spéciaux pour introduire de l'ambiguïté. Est-ce « tous les 5 minutes » ou « à la minute 5 » ? Le job s'exécute-t-il à 9h ou à 9pm ? Qu'est-ce qui se passe si vous oubliez que les mois sont indexés à partir de 1, mais les jours de la semaine commencent à 0 ? */5 « tous les 5 minutes » ou « à la minute 5 » ? Le job s'exécute-t-il à 9h ou à 9pm ? Qu'est-ce qui se passe si vous oubliez que les mois sont indexés à partir de 1, mais les jours de la semaine commencent à 0 ? 0 9 * * 1-5 s'exécute-t-il à 9h ou à 9pm ? Qu'est-ce qui se passe si vous oubliez que les mois sont indexés à partir de 1, mais les jours de la semaine commencent à 0 ?
Ce ne sont pas des pièges pour les débutants. Ce sont des pièges pour tout le monde. Une tâche cron mal configurée est l'une des manières silencieuses d'introduire un incident en production — le genre où rien ne tombe en panne immédiatement, il ne se produit rien, et vous ne le remarquez qu'après trois jours.
Les cinq champs, expliqués sans cérémonie
Voici la version pratique :
- Minute (0–59) — La minute de l'heure lorsque la tâche s'exécute.
30signifie la 30e minute.*/15signifie toutes les 15 minutes. - Heure (0–23) — Utilise le format de 24 heures.
9signifie 9h.17signifie 17h. Aucun malaise AM/PM. - Jour du mois (1–31) — Le jour du calendrier.
1signifie le premier jour du mois.15signifie le 15e. - Mois (1–12) — Janvier est
1, Décembre est12. Vous pouvez aussi utiliser des noms :JAN,FEB, etc. - Jour de la semaine (0–6 ou 1–7) — Dimanche peut être
0ou7selon votre implémentation de cron. Lundi est toujours1. Ce champ est celui qui cause le plus de confusion.
Les caractères spéciaux qui comptent
*— Tous les valeurs possibles (chaque minute, chaque heure, etc.)*/n— Chaque Le texte n'est pas lisible ou pertinent pour une traduction.e intervalle.*/5dans le champ des minutes signifie tous les 5 minutes.a-b— Une plage.1-5dans le champ des jours de la semaine signifie lundi au vendredi.a,b,c— Une liste.1,3,5signifie lundi, mercredi, vendredi.@reboot,@hourly,@daily— Des abréviations. Pas supportées partout.
Les erreurs courantes qui frappent les gens
1. Oublier le fuseau horaire
Cron s'exécute dans le fuseau horaire local du serveur. Si votre serveur est en UTC et que vous êtes à New York, 0 9 * * * ne s'exécute pas à 9h de l'Est — il s'exécute à 4h ou 5h, selon le DST. Connaître toujours le fuseau horaire de votre serveur. Toujours.
2. Utiliser à la fois le jour du mois et le jour de la semaine
Si vous spécifiez une valeur dans les deux champs jour du mois et jour de la semaine (plutôt que * dans l'un des deux), la plupart des implémentations de cron l'interprètent comme une OR — la tâche s'exécute lorsque l'un des deux conditions est remplie. C'est presque jamais ce que vous voulez.
3. Attendre que */1 signifie « une seule fois »
*/1 est équivalent à *. Cela signifie « tous les ». Il n'est pas possible d'exprimer « exécuter une seule fois » dans le cron standard — pour cela, vous devriez utiliser at ou un timer systemd à usage unique.
4. Ne pas tester avant le déploiement
Cron ne fournit pas de retour immédiat. Vous écrivez l'expression, vous la sauvegardez dans le crontab, puis vous attendez. Si elle est fausse, vous le découvrez à 3h lorsque le backup planifié ne s'exécute pas. C'est pourquoi utiliser un calculateur de prochaine exécution cron avant le déploiement en vaut la peine, même s'il prend 30 secondes.
Utilisez un générateur d'expression cron au lieu de le faire manuellement
L'avis honnête : arrêtez de tenter d'écrire des expressions cron à partir de la mémoire. Utilisez un générateur. Ce n'est pas une faiblesse — c'est la manière de éviter des erreurs bêtes en production.
Le générateur d'expression cron sur IOTools vous permet de construire n'importe quelle expression de manière visuelle — choisissez votre intervalle de minutes, d'heure, jour de la semaine, et il vous montre l'expression exacte ainsi qu'une explication en langage simple de l'heure d'exécution. Aucune mémoire requise, aucune page de documentation ouverte.
Une fois que vous avez l'expression, passez-la par le calculateur de prochaine exécution cron. Collez l'expression, obtenez les 5 à 10 prochaines heures d'exécution prévues. Cela prend cinq secondes et vous dira immédiatement si vous avez accidentellement planifié votre tâche de nettoyage pour s'exécuter toutes les minutes au lieu d'une fois par jour.
Ce deuxième contrôle est celui que la plupart des gens omètent. Ne l'omettez pas.
Référence rapide : expressions que vous utiliserez réellement
| Expression | Signification |
|---|---|
* * * * * | Chaque minute |
0 * * * * | Chaque heure, à l'heure |
0 9 * * * | Chaque jour à 9h00 |
0 9 * * 1-5 | Les jours ouvrés à 9h00 |
*/15 * * * * | Toutes les 15 minutes |
0 0 * * 0 | Chaque dimanche à minuit |
0 0 1 * * | Premier jour de chaque mois à minuit |
30 4 1,15 * * | 1er et 15e du mois à 4h30 |
0 22 * * 1-5 | Les jours ouvrés à 22h00 |
@daily | Une seule fois par jour à minuit (abréviation) |
Vous aimerez peut-être aussi
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil a été ajouté le 20 avr. 2026
