Neben dem klassischen Crontab bietet seit einiger Zeit auch systemd mittels so genannter Timer die Möglichkeit, Aufgaben regelmäßig auszuführen.
Wenn man beispielsweise seinen gpg Schlüsselbund regelmäßig aktualisieren möchte (was dringend zu empfehlen ist), dann kann man dies entweder mittels crontab erledigen, oder man nutzt systemd’s Timer für die Aufgabe.
Dafür muss man zuerst unter ~/.config/systemd/user/ eine systemd Unit gpg-update.service mit folgendem Inhalt anlegen:
[Unit] Description=Update keys in local keyring [Service] Type=oneshot Environment=DISPLAY=:0 ExecStart=/usr/bin/gpg --refresh-keys [Install] WantedBy=basic.target
Als nächstes wird im selben Verzeichnis noch der systemd Timer gpg-update.timer mit folgendem Inhalt angelegt:
[Unit] Description=Update keys in local keyring [Timer] OnCalendar=hourly Persistent=true Unit=gpg-update.service [Install] WantedBy=gpg-update.service
In diesem Beispiel wird der Timer stündlich ausgeführt. Es kann jedoch auch ein anderes Interval verwendet werden.
Im nächsten Schritt wird dann noch der neu angelegte Timer aktiviert und gestartet
systemctl --user enable gpg-update.timer systemctl --user start gpg-update-timer
Um zu prüfen, ob alles wie gewollte funktioniert hat, kann man dies mit folgendem Befehl überprüfen:
systemctl --user status gpg-update.timer
Sollte im Status des Timers unter dem Punkt Active nicht active (waiting) stehen, sollte man mittels journalctl -xe einen Blick in das Journal werfen um der möglichen Fehlerursache auf die Schliche zu kommen.