← retour aux snippets

systemd timer: planifier une tâche périodique

Créer un service + timer pour exécuter une commande à intervalle régulier avec logs dans journalctl.

objectif

Remplacer un cron par un timer systemd simple et observable.

code minimal

# /etc/systemd/system/cleanup.service
[Unit]
Description=Nettoyage

[Service]
Type=oneshot
ExecStart=/usr/local/bin/cleanup.sh

# /etc/systemd/system/cleanup.timer
[Unit]
Description=Timer nettoyage

[Timer]
OnCalendar=hourly
Persistent=true

[Install]
WantedBy=timers.target

utilisation

sudo systemctl daemon-reload
sudo systemctl enable --now cleanup.timer
systemctl list-timers | grep cleanup
journalctl -u cleanup.service -n 50 -f

variante(s) utile(s)

# exécuter maintenant
sudo systemctl start cleanup.service

notes

  • Persistent=true rattrape les exécutions manquées pendant un arrêt.
  • tous les logs sont accessibles via journalctl.