Files
systemd-timer/README.DE.md
Max P. fb2a62d984 docs(readme): expand CLI option descriptions for clarity
- Add detailed explanations for each CLI option in README files
- Improve consistency and formatting for better readability
- Highlight supported features and usage comprehensively
2025-05-28 14:26:02 +02:00

2.8 KiB

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: Zeitplan für den Timer (systemd OnCalendar)
    • --exec: Auszuführendes Kommando (ExecStart)
    • --description: Beschreibung für die Unit
    • --after: After=-Abhängigkeiten in der Service-Unit
    • --environment: Beliebige Environment=KEY=VALUE Einträge
    • --output: Zielverzeichnis für die generierten Unit-Dateien
    • --run-as: Setzt User= in der Service-Unit (nur systemweite Timer)
    • --home: Setzt Environment=HOME=…
    • --cwd: Arbeitsverzeichnis des Prozesses (WorkingDirectory)
    • --dry-run: Gibt nur die generierten Inhalte aus, ohne sie zu schreiben
  • 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