Détection
jarvis-health produit OK, DEGRADE ou CRITIQUE et un code retour exploitable.
Activer une supervision locale légère qui exécute jarvis-health toutes les 10 minutes, n’utilise aucun LLM pour décider si Jarvis est sain, et n’envoie une notification Telegram que lorsque l’état change.
jarvis-health
10 minutes
Transitions uniquement
jarvis-health, lit son code retour et la ligne SANTÉ:, puis compare le résultat avec l’état précédent.jarvis-health produit OK, DEGRADE ou CRITIQUE et un code retour exploitable.
~/.local/state/jarvis-watchdog/state conserve uniquement le dernier état connu.
last-health.txt conserve le dernier rapport nettoyé des codes couleur ANSI.
Hermes envoie le message vers le home channel Telegram déjà défini au Module 09.
command -v jarvis-health
command -v jarvis-watchdog
command -v hermes
command -v flock
jarvis-health
echo "Code retour : $?"jarvis-health, de Hermes pour Telegram et de flock pour empêcher deux exécutions simultanées.jarvis-health retourne normalement 0 sur un cœur Jarvis sain.# Depuis le site :
# Voir : ../scripts/jarvis-watchdog
# Télécharger: ../scripts/jarvis-watchdog
ls -lh "$HOME/.local/bin/jarvis-watchdog"~/.local/bin si le Module 13 a été validé.bash -n "$HOME/.local/bin/jarvis-watchdog"
chmod 700 "$HOME/.local/bin/jarvis-watchdog"
stat -c '%a %n' "$HOME/.local/bin/jarvis-watchdog"
grep -nE '192\.168\.|/home/[A-Za-z0-9._-]+' "$HOME/.local/bin/jarvis-watchdog" || true700 et aucune ancienne IP ou chemin utilisateur réel.grep -nE 'STATE_DIR|STATE_FILE|LAST_REPORT|LOCK_FILE' "$HOME/.local/bin/jarvis-watchdog"~/.local/state/jarvis-watchdog/.jarvis-watchdog --test-alert--test-alert envoie uniquement un message de test et ne modifie pas l’état du watchdog.JARVIS WATCHDOG indiquant qu’il s’agit d’un test.jarvis-watchdog
echo "Code retour : $?"OK sans envoyer de notification inutile.Jarvis OK — état initial enregistré. ou État inchangé : OK.STATE_DIR="$HOME/.local/state/jarvis-watchdog"
ls -la "$STATE_DIR"
printf 'État mémorisé : '
cat "$STATE_DIR/state"
stat -c '%a %n' "$STATE_DIR/last-health.txt"
tail -n 30 "$STATE_DIR/last-health.txt"state contient OK sur une machine saine et last-health.txt est lisible uniquement par l’utilisateur.jarvis-watchdog
jarvis-watchdogÉtat inchangé : OK et aucun nouveau message d’alerte n’est envoyé.mkdir -p "$HOME/.config/systemd/user"
cat > "$HOME/.config/systemd/user/jarvis-watchdog.service" <<'EOF'
[Unit]
Description=Jarvis Health Watchdog
After=network-online.target
[Service]
Type=oneshot
ExecStart=%h/.local/bin/jarvis-watchdog
EOFjarvis-watchdog.service existe sous ~/.config/systemd/user/.cat > "$HOME/.config/systemd/user/jarvis-watchdog.timer" <<'EOF'
[Unit]
Description=Surveillance régulière de Jarvis
[Timer]
OnBootSec=2min
OnUnitActiveSec=10min
AccuracySec=1min
[Install]
WantedBy=timers.target
EOFsystemd-analyze --user verify "$HOME/.config/systemd/user/jarvis-watchdog.service" "$HOME/.config/systemd/user/jarvis-watchdog.timer"systemctl --user daemon-reload
systemctl --user cat jarvis-watchdog.service
systemctl --user cat jarvis-watchdog.timerloginctl show-user "$USER" -p LingerLinger=yes. S’il est déjà activé depuis les modules précédents, aucune action supplémentaire.systemctl --user enable --now jarvis-watchdog.timersystemctl --user status jarvis-watchdog.timer --no-pager
systemctl --user list-timers --all | grep jarvis-watchdogsystemctl --user start jarvis-watchdog.service
systemctl --user status jarvis-watchdog.service --no-pager || true
journalctl --user -u jarvis-watchdog.service -n 40 --no-pagerinactive (dead) après succès est normal pour un service Type=oneshot.pgrep -af jarvis-watchdog || true
ls -l "$HOME/.local/state/jarvis-watchdog/lock"flock -n : si une exécution est déjà en cours, une seconde quitte immédiatement sans conflit.STATE="$HOME/.local/state/jarvis-watchdog/state"
cp -a "$STATE" "${STATE}.before-test"
printf 'DEGRADE
' > "$STATE"
chmod 600 "$STATE"
# À lancer uniquement si jarvis-health retourne actuellement 0 / SANTÉ: OK
jarvis-watchdog
cat "$STATE"
rm -f "${STATE}.before-test"DEGRADE. Si la santé actuelle est OK, le watchdog doit envoyer un message de rétablissement.JARVIS RÉTABLI et le fichier state revient à OK.STATE_DIR="$HOME/.local/state/jarvis-watchdog"
cat "$STATE_DIR/state"
tail -n 60 "$STATE_DIR/last-health.txt"
journalctl --user -u jarvis-watchdog.service --since today --no-pager | tail -80jarvis-health et l’historique systemd sont cohérents.systemctl --user is-enabled jarvis-watchdog.timer
systemctl --user is-active jarvis-watchdog.timer
systemctl --user list-timers --all | grep jarvis-watchdog
jarvis-watchdog --test-alertenabled et active, une échéance est visible et le test Telegram est reçu.Enregistre OK silencieusement. Pas d’alerte au premier démarrage sain.
Aucun message. Le watchdog indique seulement que l’état est inchangé.
Une alerte est envoyée avec état, hostname, date, code retour et extrait utile de jarvis-health.
Une notification JARVIS RÉTABLI est envoyée puis l’état repasse à OK.
Ne passez à la validation finale que lorsque la surveillance est réellement autonome.
jarvis-watchdog passe bash -n.jarvis-health fonctionne.--test-alert est reçu sur Telegram.last-health.txt est créé en mode privé.Linger=yes.Jarvis dispose maintenant d’une supervision locale autonome : diagnostic sans LLM, déduplication des alertes, notification Telegram sur changement d’état et contrôle toutes les 10 minutes. Il ne reste plus que la validation finale du cœur.