Guides 3 min de lecture

Éviter les tâches manquées : assurez le bon fonctionnement de vos tâches cron

Sauvegardes, imports et nettoyages tournent avec cron, et ils échouent en silence. Les causes courantes des tâches cron manquées, comment les diagnostiquer et comment être alerté quand une tâche ne s’exécute pas.

Les tâches cron assurent le travail discret derrière les sites web et les serveurs : sauvegardes, mises à jour, imports, factures, préchauffage du cache et nettoyages. Quand elles fonctionnent, personne ne s’en aperçoit. Quand elles s’arrêtent, personne ne s’en aperçoit non plus, jusqu’au jour où une sauvegarde manque ou qu’une facturation n’a jamais eu lieu.

Pourquoi les tâches cron comptent

Cron planifie l’exécution automatique de commandes à heures fixes ou à intervalles réguliers. Cela fait gagner du temps et supprime le risque qu’une tâche soit oubliée. Mais cela signifie aussi que des travaux critiques, comme les sauvegardes nocturnes, dépendent d’un planificateur qui ne prévient personne quand quelque chose tourne mal.

Les raisons courantes des tâches cron manquées

Indisponibilité du serveur. Si le serveur est éteint ou redémarre à l’heure prévue, la tâche ne s’exécute pas.

Erreurs de syntaxe. Un champ erroné dans l’expression de planification peut faire tourner la tâche au mauvais moment, voire jamais.

Mauvaise configuration. Mauvais utilisateur, mauvais répertoire de travail ou tâche ajoutée à une crontab qui n’est jamais chargée.

Différences d’environnement. Cron s’exécute avec un environnement minimal. Une commande qui fonctionne dans votre shell peut échouer sous cron parce que PATH ou d’autres variables manquent.

Chevauchements et dépassements de délai. Une tâche qui dure plus longtemps que son intervalle peut entrer en collision avec l’exécution suivante. Une durée d’exécution maximale sur le moniteur de la tâche vous prévient quand une exécution s’éternise.

Identifier et diagnostiquer les erreurs

Commencez par les journaux. Le journal système (souvent /var/log/syslog ou le journal cron de votre distribution) indique si cron a lancé la tâche. La sortie de la tâche elle-même montre ce qui s’est passé ensuite.

Erreurs typiques et leur signification :

command not found : utilisez des chemins absolus, ou définissez PATH en haut de la crontab.

permission denied : vérifiez les permissions des fichiers et l’utilisateur sous lequel la tâche s’exécute.

syntax error : vérifiez l’expression de planification et les guillemets dans la commande.

Redirigez la sortie vers un fichier journal pour que les échecs laissent une trace :

30 2 * * * /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Surveiller les tâches cron

Les journaux ne servent que si quelqu’un les lit. La surveillance transforme un échec silencieux en alerte. La méthode la plus fiable est le heartbeat : la tâche envoie une requête à une URL de surveillance à la fin de son exécution. Si la requête n’arrive pas dans le délai prévu, vous recevez une alerte.

Avec les moniteurs cron d’Uptimecheck, la tâche envoie un ping à une URL unique en GET ou en POST. Le moniteur reprend la planification de la crontab dans votre fuseau horaire, accepte des pings de début et de fin sur un même moniteur, alerte quand une exécution dépasse sa durée maximale et peut enregistrer le code de sortie et la sortie de la tâche. Si un ping manque, l’alerte part par e-mail, sur Slack, Microsoft Teams, Discord, Google Chat, Mattermost, Telegram, PagerDuty, ntfy, Pushover, par webhook ou en notification push sur votre téléphone, sur toutes les offres. Suivez le guide pas à pas Comment surveiller les tâches cron.

Bonnes pratiques de planification

Planifiez les tâches lourdes en dehors des heures de pointe.

Échelonnez les tâches qui utilisent les mêmes ressources au lieu de toutes les lancer à minuit.

Utilisez un verrou (par exemple flock) pour qu’une exécution lente ne chevauche pas la suivante.

Revoyez les planifications quand votre application évolue.

Exécuter cron sur plusieurs serveurs

Quand la même tâche existe sur plusieurs serveurs, décidez où elle doit tourner et assurez-vous qu’elle ne s’exécute qu’une fois. Une planification centralisée ou un verrou dans un stockage partagé y aide. Donnez à chaque tâche son propre heartbeat, pour savoir quel serveur a manqué son exécution.

Sécuriser les tâches cron

Les tâches cron ont souvent accès aux bases de données, aux sauvegardes et aux identifiants.

Limitez les personnes autorisées à modifier les crontabs.

Gardez les secrets hors de la ligne de crontab elle-même, dans des fichiers protégés ou dans la configuration de l’environnement.

Passez régulièrement les tâches en revue et supprimez celles dont vous n’avez plus besoin.

Utiliser les ressources efficacement

N’exécutez les tâches qu’aussi souvent que nécessaire, et gardez des commandes légères. Un rapport que personne ne lit toutes les heures peut très bien tourner une fois par jour.

Tester avant de s’y fier

Lancez une nouvelle tâche à la main sous le même utilisateur, vérifiez la sortie et seulement ensuite planifiez-la. Ajoutez le heartbeat en même temps, pour savoir dès la première nuit si elle s’est exécutée.

Conclusion

Les tâches cron sont essentielles et invisibles, et c’est précisément pour cela qu’elles doivent être surveillées. Corrigez les causes courantes, journalisez la sortie et ajoutez un heartbeat à chaque tâche importante.

Essayez Uptimecheck gratuitement pendant 14 jours, sans carte bancaire.

À lire aussi

Guides 8 min de lecture

Expressions cron expliquées : syntaxe, exemples et erreurs courantes

Une expression cron, ce sont cinq champs qui indiquent quand une tâche s’exécute. La syntaxe, les caractères spéciaux et les raccourcis comme @daily, des exemples prêts à l’emploi et les erreurs de fuseau horaire et de PATH qui font échouer les tâches.

Lire

Guides 6 min de lecture

Comment surveiller vos tâches cron avec des heartbeats

Les tâches cron échouent en silence. Un moniteur heartbeat vous alerte quand une tâche planifiée ne se signale pas à temps. Fonctionnement des heartbeats, ajout dans une crontab et réglages à choisir.

Lire

Les pannes, c’est du passé.

Configurez votre premier moniteur en moins d’une minute, ou explorez d’abord la démo en ligne.

Essai gratuit de 14 jours · Puis gratuit pour 5 moniteurs · Sans carte bancaire