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
- Quelle directive planifie un timer toutes les 30 minutes ?
- a) OnCalendar=*:0/30
- b) OnBootSec=30m
- c) RandomizedDelaySec=30m