Wer schon mal versucht hat, systemd-Timer von Hand zu schreiben, weiß: So richtig Spaß macht das nicht. Zwischen .service- und .timer-Dateien, Pfadangaben, und OnCalendar-Syntax kann man sich schnell vertun. Genau dafür habe ich mir ein kleines Tool gebaut: systemd-timer.
Was macht das Ding?
Ganz einfach: Du rufst ein CLI auf, gibst ein paar Parameter an, und das Tool schreibt dir die passenden .service- und .timer-Units – inklusive Logging, Abhängigkeiten und allem, was systemd eben braucht. Keine Vorlage kopieren, keine Tippfehler mehr, kein Nachdenken darüber, ob das jetzt WantedBy=timers.target heißen muss oder nicht.
Warum nicht einfach cron?
Klar, cron funktioniert. Aber systemd hat ein paar Vorteile:
- Besseres Logging (auch in Datei)
- Einfache Integration mit anderen Diensten (z. B. Netzwerkwarten)
- Funktioniert auch pro Benutzer (ohne root-Rechte)
- Alles bleibt in einer Sprache: systemd
Das CLI hilft dabei, die Einstiegshürde zu senken und trotzdem “richtig” mit systemd zu arbeiten.
Was kann systemd-timer?
.service+.timer-Dateien erstellen--user-Timer (für Desktop- oder Container-Umgebungen)- Logging per
--logfile - Standard-Optionen wie:
--exec,--calendar,--after,--environment--description,--output,--dry-run
- CLI basiert auf
Cliffy, getippt mit Deno - Plattformunabhängige Installation per Shell-Skript
Ein Beispiel, das du sofort nutzen kannst
| |
Ergebnis:
~/.config/systemd/user/backup.service~/.config/systemd/user/backup.timer
Aktivieren:
| |
Installation: Ein Einzeiler
| |
Das Skript erkennt automatisch deine Architektur (amd64/arm64), lädt die passende Binary und prüft sie mit SHA256. Und ja, du kannst dir den Code vorher anschauen, bevor du ihn durch die Leitung jagst.
Entwicklung & Test
Das Tool ist komplett mit TypeScript/Deno geschrieben, ordentlich typisiert und testgetrieben. Alles Wichtige ist modular aufgebaut, damit man es auch als Bibliothek verwenden könnte.
Tests laufen einfach per:
| |
Fazit
systemd-timer ist kein Monster-Tool mit 1000 Optionen – sondern genau das, was man sich wünscht, wenn man öfter mal einfache Tasks zeitgesteuert per systemd laufen lassen will, ohne sich jedes Mal die Finger wundzuschreiben. Es richtet sich an Leute, die lieber deklarativ als improvisiert arbeiten.
Quellcode, Releases und alles Weitere findest du hier: 👉 git.0xmax42.io/maxp/systemd-timer
