Crontab-Jobabhängigkeit zur Verhinderung von Rennen [geschlossen]

7

Ich möchte alle 5 Minuten einen Cron ausführen, aber ich möchte nicht, dass der nächste Cron ausgeführt wird, wenn der vorherige noch nicht fertig ist.

Was kann man dagegen tun? Gibt es Tools, die dies unterstützen?

Vielen Dank

SexyMF
quelle

Antworten:

12

Verwenden Sie Herde .

flock -n /path/to/lockfile -c "command_you_want_to_run"
Sciurus
quelle
1. Wird die Datei nach command_you_want_to_run freigegeben? 2. Wie kann das in einen Cron integriert werden? **** 5 Herde -n .... ist das richtig? Vielen Dank
SexyMF
1: Ja. 2: Ja.
Sciurus
5

Sie können den Befehl run-one verwenden. Es wird automatisch eine Sperrdatei für den ausgeführten Befehl erstellt.

run-one rsync -a mirror.kernel.org::everything /my/hd

Das Verhalten ist ähnlich wie bei Flock, aber die Syntax ist klarer. Der Nachteil ist, dass Sie möglicherweise den Befehl installieren müssen, um ihn zu verwenden. Besondere Aufmerksamkeit sollte auch beim Ändern der Befehlszeile beachtet werden, wenn sich die Befehlszeile ändert, ebenso wie der Name der Sperrdatei

Ressu
quelle
4

Cron unterstützt keinerlei Jobabhängigkeiten. Die dort eingegebenen Einträge werden bei Angabe ausgeführt.

Sie müssen ein einfaches Verriegelungsschema einfügen. Einfügen des angegebenen Befehls oder Befehlssatzes in ein Wrapper-Skript, das das Sperrschema enthält.

Oder installieren Sie wie bei größeren Standorten eine Art von Jobplanungsanwendungen und verwenden Sie diese, um die Anwendungen unter bestimmten Bedingungen auszuführen.

mdpc
quelle