0 0 * * *Champs
| Minute | 0 | 0 |
|---|---|---|
| Heure | 0 | 0 |
| Jour du mois | * | toutes |
| Mois | * | toutes |
| Jour de la semaine | * | toutes |
Où l’utiliser
| crontab | 0 0 * * * /path/to/script.sh |
|---|---|
| GitHub Actions | - cron: "0 0 * * *" (on.schedule) |
| Kubernetes CronJob | schedule: "0 0 * * *" |
crontab utilise le fuseau horaire du serveur ; GitHub Actions utilise toujours UTC.
Bon à savoir
0 0 * * * s’exécute à 00:00 dans le fuseau horaire du serveur, qui sur les machines cloud est souvent UTC plutôt que votre minuit local ; vérifiez avec timedatectl. @daily et @midnight sont des raccourcis pour la même planification. Minuit est le choix par défaut de tout le monde : sauvegardes, rapports et tâches des autres clients se disputent alors le disque et la base de données ; un créneau plus calme comme 17 0 * * * est souvent préférable.
Cron interprète un % seul comme un saut de ligne, il faut donc l’échapper dans la crontab : date -d yesterday +\%F donne la date qu’une tâche nocturne doit généralement traiter. Si le serveur est éteint à minuit, le cron standard ne rattrape pas l’exécution ; anacron ou un timer systemd avec Persistent=true, si. Ajoutez un dead man’s switch comme Healthchecks.io ou Cronitor pour savoir quand la tâche s’arrête silencieusement.