Retour au cours

planification: cron et timers systemd

Choisissez entre cron et timers systemd pour des planifications fiables.

objectifs d’apprentissage

  • Éditer crontab.
  • Créer un timer systemd.
  • Journaliser l’exécution.

prérequis

  • Accès utilisateur/sudo.
  • systemd présent.

notions clés

  • crontab -e.
  • OnCalendar=.
  • journalctl -u.

démonstration guidée

étape 1

Crontab simple toutes les heures.

(crontab -l 2>/dev/null; echo '0 * * * * echo cron-ok >> ~/cron.log') | crontab -
crontab -l

étape 2

Timer systemd qui appelle un service.

printf '%s
' '[Unit]' 'Description=Job' '[Service]' 'Type=oneshot' 'ExecStart=/usr/bin/echo timer-ok' | sudo tee /etc/systemd/system/job.service >/dev/null
printf '%s
' '[Unit]' 'Description=Job timer' '[Timer]' 'OnCalendar=*:0/30' 'Persistent=true' '[Install]' 'WantedBy=timers.target' | sudo tee /etc/systemd/system/job.timer >/dev/null
sudo systemctl daemon-reload && sudo systemctl enable --now job.timer
systemctl list-timers job.timer --all

exercice

Ajoutez une redirection vers un log dédié et vérifiez avec journalctl.

correction

Journalctl ciblé.

journalctl -u job.service -n 20 --no-pager

quiz éclair

  1. Quelle directive planifie un timer toutes les 30 minutes ?
  • a) OnCalendar=*:0/30
  • b) OnBootSec=30m
  • c) RandomizedDelaySec=30m

ressources