Devmind.
Menu

Apprendre, à votre rythme

Tous les cursus sont accessibles sans compte.

Chapitre 13 / Notion

Timers, journald et loginctl

Cron + syslog + fichiers de logs dispersés : l'ancien monde.

◷ 13 minutesTravail sur votre machine

Prérequis : cours précédent + DevOps 1.2 (timers base).

Pourquoi

Cron + syslog + fichiers de logs dispersés : l'ancien monde. Timers + journald : planifié + centralisé + interrogeable. Et loginctl pour les sessions — le chaînon manquant du « qui est connecté ».

Concepts

  • Timers précis : OnCalendar=*-*-* 04:30:00, OnBootSec=15min, OnUnitActiveSec=1h (périodique depuis la fin). Persistent=true (rattrapage), AccuracySec=1h (regrouper les réveils : laptops/VM фактура… économie d'énergie).
  • journald : logs structurés (_SYSTEMD_UNIT, PRIORITY, champs custom via systemd-cat -t monapp), stockage /var/log/journal (persistant) sinon RAM seule (perdus au reboot ! Storage=persistent).
  • Interroger : journalctl -u X --since "2 hours ago" -p err, -o json-pretty (structuré !), --vacuum-size (purge), --disk-usage.
  • loginctl : sessions (loginctl list-sessions), user-status, linger (loginctl enable-linger monapp : ses services user survivent à la déconnexion — sinon tués au logout !).

Exemple : timer + log propre

[Timer]
OnCalendar=*-*-* 04:30:00
Persistent=true
RandomizedDelaySec=15min   # pas tous les serveurs à la même seconde !
echo "backup ok" | systemd-cat -t backup -p info
journalctl -t backup --since today

Cas réel

Service user (tmux + scripts) qui « meurt chaque soir » : à la déconnexion SSH, systemd tue tout (pas de linger). enable-linger : survit. Ou mieux : vraie unit système au lieu d'un service user bricolé.

Pièges

  • Journal en RAM seule (défaut sans /var/log/journal) : incident + reboot = preuves perdues. Storage=persistent.
  • 50 timers à 4h30 pile : pic I/O. RandomizedDelaySec pour étaler.
  • journalctl --vacuum sur le journal d'un incident en cours : purger les preuves. Archiver d'abord (journalctl --since … > fichier).

À retenir

Timers précis + persistants + étalés, journal persistant et structuré, linger pour les services user.

Pas de correction en ligneConfrontez votre code aux résultats attendus du cours.