Zum Inhalt

Linux Tipps & Tricks

📅 Erstellt: 10.08.2026 🔄 Aktualisiert: 12.08.2026

Systemd Timer erstellen für User

Um täglich, 12-stündlich, wöchentlich etc. ein .sh Skript aufzurufen kann man sich Systemd zu Nutze machen.
Hierzu braucht man eine Timer-Datei .timer und eine Service-Datei .service.

Beispiel für eine .service Datei

[Unit]
Description=Startet mein Shell-Skript

[Service]
Type=oneshot
ExecStart=/pfad/zu/deinem/skript.sh

ACHTUNG! Möchte man das Benutzer Heim-Verzeichnis nutzen schreibt man %h, $HOME bzw ~ funktionieren nicht!

Beispiel für eine .timer Datei

[Unit]
Description=Timer fuer mein Shell-Skript

[Timer]
# Waehle eines der Beispiele unten fuer OnCalendar:
OnCalendar=Mon *-*-* 14:30:00

# Verpasste Ausfuehrungen (z. B. wenn der PC aus war) nach dem Start nachholen
Persistent=true

[Install]
WantedBy=timers.target

Beispiele für OnCalendar=

  • Alle 12 Stunden (um 00:00 und 12:00 Uhr):
    OnCalendar=00/12:00:00

  • Alle 3 Tage (z. B. jeweils um 03:00 Uhr morgens):
    OnCalendar=*-*-1/3 03:00:00 (läuft am 1., 4., 7., ... Tag des Monats)

  • 1x die Woche an einem bestimmten Tag/Uhrzeit (z. B. jeden Montag um 14:30 Uhr):
    OnCalendar=Mon *-*-* 14:30:00

  • Täglich um 9 und 18 Uhr:
    OnCalendar=*-*-* 09,18:00:00
    oder lesbarer:
    OnCalendar=09:00:00
    OnCalendar=18:00:00

Hat man diese beiden Dateien (Service- und Timer-Datei) in ~/.config/systemd/user erstellt, wird die Konfiguration neu geladen:
systemctl --user daemon-reload
Dann den Timer aktivieren und sofort starten:
systemctl --user enable --now mein-skript.timer

Weitere Befehle

Aktive Timer und nächste Ausführungszeiten anzeigen:
systemctl --user list-timers
Status des Timers prüfen:
systemctl --user status mein-skript.timer
Skript manuell ausführen bzw. Timer manuell triggern:
systemctl --user start mein-skript.service
Zeit-Syntax vorab prüfen (wann der nächste Lauf wäre):
systemd-analyze calendar "Mon *-*-* 14:30:00"

Tipp: Damit der User-Timer auch nach dem Abmelden weiterläuft (z. B. auf einem Server), muss für deinen Benutzer einmalig das Linger-Feature aktiviert werden: loginctl enable-linger $USER. War/ist bei mir schon aktiviert.

Einen Befehl mit Parametern für alle *.EXT ausführen

for f in *.ext; do <Befehl> --option -o "$f"; done

Ein Skript in Dolphin integrieren

Für .mds und .iso Dateien habe ich ein Konvertierungsskript in .bin/.cue geschrieben. Diese Skript möchte ich nun für besagte Dateien in Dolphin integrieren.

Falls noch nicht vorhanden das Verzeichnis dazu erstellen:
mkdir -p ~/.local/share/kio/servicemenus

Desktop-Datei für Dolphin anlegen

~/.local/share/kio/servicemenus/convert_mdsiso_to_bincue.desktop:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=application/x-cd-image;application/x-iso9001-image;application/x-mds;application/octet-stream;
Actions=convertToBinCue;
X-KDE-Submenu=Konvertieren

[Desktop Action convertToBinCue]
Name=MDS/ISO in .bin / .cue umwandeln (PicoGUS)
Icon=media-optical
Exec=konsole -e bash -c '"$HOME/bin/conv_mdsiso_to_bincue.sh" "$1"' _ "%f"

Hier noch ein verfeinertes Beispiel bald™ einfügen :p