GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux – Skript alle 30 Minuten mit Systemd ausführen?

Ich möchte alle 30 Minuten nach dem Booten des Systems ein Skript ausführen. Ich weiß, dass Sie cron verwenden können, aber ich habe nicht vor, diese Funktion oft zu verwenden, daher würde ich es gerne mit systemd versuchen.

Bisher habe ich nur die monotonen Timer gefunden, die es erlauben, etwas einmal auszuführen (glaube ich zumindest). Wie würde der foo.timer und [email protected] wie sieht es aus, wenn ich alle 30 Minuten nach dem Booten/Systemstart etwas ausführen möchte?

[E-Mail geschützt]

[Unit]
Description=run foo
Wants=foo.timer

[Service]
User=%I
Type=simple
ExecStart=/bin/bash /home/user/script.sh

foo.timer

[Unit]
Description=run foo

[Timer]
where I am stuck... ???

Akzeptierte Antwort:

Sie müssen zwei Dateien erstellen:eine für den Dienst, die andere für den Timer mit demselben Namen.

Beispiel:

/etc/systemd/system/test.service

[Unit]
Description=test job

[Service]
Type=oneshot
ExecStart=/bin/bash /tmp/1.sh

/etc/systemd/system/test.timer

[Unit]
Description=test

[Timer]
OnUnitActiveSec=10s
OnBootSec=10s

[Install]
WantedBy=timers.target

Laden Sie danach das Systemd mit dem Befehl systemctl daemon-reload neu und starten Sie Ihren Timer mit systemctl start test.timer , oder aktivieren Sie es standardmäßig (systemctl enable test.timer ).

Testinhalt von 1.sh

#!/bin/bash
echo `date` >> /tmp/2

Und Befehl zum Überprüfen aller verfügbaren Timer:systemctl list-timers --all

Ausführlichere Informationen auf der Projektseite und Beispiele auf der ArchLinux-Seite


Linux
  1. Linux – Wie führe ich ein Skript mit Systemd direkt vor dem Herunterfahren aus?

  2. Linux – Speicherort des Fsck-Skripts?

  3. Kompilieren Sie ein PHP-Skript unter Linux

  4. So fügen Sie Shebang # hinzu! mit PHP-Skript unter Linux?

  5. Berechtigung zum Ausführen von cron mit bash.sh verweigert

Führen Sie Windows-Anwendungen unter Linux mit Crossover 15 aus

So führen Sie Windows-Software unter Linux mit Flaschen aus

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus

Ausführen von Almalinux oder Rocky Linux 8 Docker-Container mit Systemd (systemctl)

So führen Sie einen Alias ​​mit Sudo in Linux aus