systemd-timer

Project time

Ein einfaches CLI-Tool zum schnellen Erzeugen von systemd .service und .timer Units – als Ersatz oder moderne Ergänzung zu klassischen cron-Jobs.


🚀 Features

  • Erzeugt .service und .timer Dateien per CLI
  • Unterstützt --user Timer (für ~/.config/systemd/user/)
  • Optionales Logging (StandardOutput/StandardError)
  • Unterstützt:
    • --calendar
    • --exec
    • --after
    • --environment
    • --output
    • --dry-run
  • Getestet und typisiert mit Deno + Cliffy

🛠️ Installation

Du kannst systemd-timer direkt per Shell-Skript installieren:

curl -fsSL https://git.0xmax42.io/maxp/systemd-timer/raw/branch/main/scripts/install.sh | sh

Das Skript erkennt automatisch deine Plattform (Linux amd64 oder arm64) und installiert die passende Binary nach /usr/local/bin, sofern dies erlaubt ist (ggf. mit sudo).

Hinweis:

  • Für die Installation ist eine funktionierende Internetverbindung notwendig.
  • Die Integrität der Binary wird mittels SHA256-Prüfsumme verifiziert.
  • Du kannst das Skript vor der Ausführung auch manuell inspizieren:
curl -fsSL https://git.0xmax42.io/maxp/systemd-timer/raw/branch/main/scripts/install.sh -o install.sh
less install.sh

Weitere Optionen und manuelle Installationswege findest du unter scripts/install.sh.


📦 Beispiel

./systemd-timer create \
  --exec "/usr/local/bin/backup.sh" \
  --calendar "Mon..Fri 02:00" \
  --description "Backup Job" \
  --user \
  --logfile "/var/log/backup.log"

Erzeugt:

  • ~/.config/systemd/user/backup.service
  • ~/.config/systemd/user/backup.timer

Anschließend aktivieren:

systemctl --user daemon-reload
systemctl --user enable --now backup.timer

🧪 Tests ausführen

deno task test

🧰 Entwickeln

deno task start create --exec "/bin/true" --calendar "daily" --dry-run

🔒 Rechte / Flags

Das Tool benötigt beim Ausführen bzw. Kompilieren:

  • --allow-env (für $HOME)
  • --allow-write (zum Schreiben von .service/.timer)

Beim Entwickeln wird meist -A (allow all) verwendet.


📝 Lizenz

MIT License

Description
A simple CLI tool for quickly generating systemd .service and .timer units — as a replacement or modern supplement to classic cron jobs.
Readme MIT 221 KiB
2025-06-15 16:52:14 +02:00
Languages
TypeScript 86%
Shell 14%