Systemd : créer une tâche planifiée sans utiliser cron

Publié le 07 August 2023

Sur les systèmes Linux récents, systemd prends en charge les tâches planifiées, ce qui permets de se passer de cron. Pour ça, il faut créer deux fichier : un .timer et un .service.

Le fichier timer

Il faut d’abord créer un fichier /etc/systemd/system/nom_tache_planifiee.timer :

[Unit]
Description=Description de la tâche planifiée

[Timer]
OnBootSec=30s
OnCalendar=*:0/20

[Install]
WantedBy=timers.target

Il y a plusieurs paramètres à modifier :

D’autres paramètres facultatifs peuvent être définis :

Le fichier service

Il faut ensuite créer un fichier /etc/systemd/system/nom_tache_planifiee.service :

[Unit]
Description=Description de la tâche planifiée
Wants=nom_tache_planifiee.timer

[Service]
User=palc
Type=simple
ExecStart=/usr/bin/echo `date` >>/tmp/date.log

Il y a plusieurs paramètres à modifier :

Activation de la tâche planifiée

Il faut maintenant activer la tâche planifiée. D’abord on recharge la configuration de systemd :

systemctl daemon-reload

Ensuite on active la tâche planifiée :

systemctl enable nom_tache_planifiee.timer

Il est possible de lancer la tâche planifiée manuellement avec :

systemctl start nom_tache_planifiee.service

Et pour voir les logs, ça se passe avec journalctl :

journalctl -u nom_tache_planifiee.service