ITFabricLab ouvre bientôt : les labs, simulations et examens ne sont pas encore accessibles. Vous pouvez parcourir le catalogue et créer votre compte pour être prévenu de l'ouverture.
Sévérité : Moyennecron

Traitement cron qui ne s'exécute plus (rapport nocturne absent)

Aucune dans la sortie du script (qui n'est jamais lancé), ou dans syslog :

```text
cron[512]: (*system*) ERROR (Missing newline before EOF, this crontab file will be ignored)
CRON[2211]: (root) CMD (report.sh)  →  /bin/sh: 1: report.sh: not found
```

Détecter

Le rapport nocturne n'est plus envoyé depuis la dernière maintenance ; aucune alerte n'a été levée.

Symptômes

Le rapport nocturne n'est plus envoyé depuis la dernière maintenance ; aucune alerte n'a été levée.

Environnement

Tâche dans /etc/cron.d/rapport, script shell appelant Python, serveur Debian.

Cause racine

Classiques de cron : fichier de /etc/cron.d sans saut de ligne final ou avec mauvais propriétaire/droits, colonne utilisateur oubliée, PATH réduit (commande non trouvée), script non exécutable, service cron arrêté.

Diagnostic

systemctl status cron
ls -l /etc/cron.d/rapport; tail -c1 /etc/cron.d/rapport | xxd
grep CRON /var/log/syslog | tail -20
sudo -u rapport env -i /bin/sh -c '/opt/rapport/report.sh'   # simuler l'environnement cron

Solution

Chemin absolu du script, PATH défini en tête du fichier, colonne utilisateur, saut de ligne final, droits 644 root:root, script exécutable, sortie redirigée vers un journal.

Commandes

PATH=/usr/local/bin:/usr/bin:/bin
30 2 * * * rapport /opt/rapport/report.sh >> /var/log/rapport.log 2>&1

Prévention

Supervision « dead man's switch » (le traitement signale son succès, alerte en cas d'absence), timers systemd, ordonnanceur centralisé pour les chaînes critiques.