Tâche périodique avec Systemd

On peut gérer une tache périodique avec les services Systemd.

Environnement

PC sous Linux Debian 10 (Buster)

Créer le service

Pour lancer mon script /opt/update-service j’ai créer le fichier /etc/systemd/system/maj.service avec le contenu suivant:

[Unit]
Description=Mise à jour périodique

[Service]
Type=oneshot
ExecStart=/opt/update-perso

Créer le chronomètre

le nom fait référence au service créer précédemment

Créer le fichier   /etc/systemd/system/maj.timer avec le contenu suivant:

Si je veux lancer chaque jour à 14h00 je mets OnCalendar=*-*-* 14:00:00

Si je veux lancer toutes les 8 heures à la 20 ième minute je mets OnCalendar=*-*-* 0/8:20:00


[Unit]
Description=Exécuter le service maj à chaque heure pile
[Timer]
OnCalendar= *--*--* *:00:00
Persistent=true
[Install]
WantedBy=timers.target

Syntaxe de OnCalendar: [JourDeSemaine] Année-Mois-Jour Heure:Minute:Seconde

Activer le chronomètre

systemctl enable maj.timer

Exemple

systemctl enable maj.timer
Created symlink /etc/systemd/system/timers.target.wants/maj.timer → /etc/systemd/system/maj.timer.

Démarrer le service

systemctl start maj.timer

Verifier

systemctl status maj.timer

Vérifier l’horodatage

systemctl list-timers --all

Exemple

systemctl list-timers --all
NEXT LEFT LAST PASSED UNIT ACTIVATES
Mon 2018-11-26 17:00:00 CET 58min left Mon 2018-11-26 16:00:00 CET 1min 58s ago maj.timer maj.service

Plus d’infos

https://www.freedesktop.org/software/systemd/man/systemd.timer.html

https://wiki.archlinux.org/index.php/Systemd/Timers

https://jlk.fjfi.cvut.cz/arch/manpages/man/systemd.time.7


Par Bidouille De Bian

Bidouilleur sur Linux Debian 10 (Buster). Débutant dans le blog sur Wordpress.