Gibt es einen Nachteil bei der Verwendung von Flock in Cron-Jobs?

0

Ich verwende mehrere Cron-Jobs, die häufig ausgeführt werden, um flockzu verhindern, dass doppelte Jobs ausgeführt werden. Ich dachte nur, dass es sinnvoll zu sein scheint, flockbei jedem Job zu arbeiten, unabhängig von der Häufigkeit, aber gibt es irgendeinen Nachteil, wenn man das macht?

Ich bin 100% Linux mit Mint, Raspbian und Ubuntu Server.

Mick Sulley
quelle

Antworten:

1

Der einzige konsequente Nachteil ist, dass die Verwendung zusätzlichen Overhead verursacht flock. Abgesehen von dem offensichtlichen Aspekt, eine Datei öffnen und sperren zu müssen, müssen Sie auch einen anderen Prozess ausführen (oder zumindest eine zusätzliche ausführbare Datei, die aufgerufen wird, exec()wenn Sie die --no-forkOption verwenden), und es gibt einige zusätzlicher Aufwand bei der Bereinigung (da das Betriebssystem die Sperre aufheben muss, wenn die Datei automatisch geschlossen wird).

Es gibt auch ein paar andere wirklich situationsspezifische Nachteile beim Sperren von Cron-Jobs wie folgt (dies ist keine vollständige Liste):

  • Wenn Sie exklusive Sperren benötigen, benötigen Sie einen beschreibbaren Dateisystempfad. Andernfalls schlägt der flockBefehl immer fehl. Das bedeutet, dass:
    • Wenn Sie nicht vorsichtig sind, kann ein Dateisystemfehler die Ausführung Ihrer Cron-Jobs vollständig stoppen (wenn dadurch der Pfad, den Sie für Sperren verwenden, schreibgeschützt wiederhergestellt wird).
    • Auf einigen eng gesicherten Geräten müssen Sie den Cron-Jobs möglicherweise zusätzliche Berechtigungen erteilen, damit sie ausgeführt werden können.
  • In einigen Fällen möchten Sie, dass die neue Instanz des Cron-Jobs diejenige ist, die fortgesetzt wird, und nicht die alte. Das beste Beispiel, das ich dafür geben kann, ist ein Hochfrequenz-Cron-Job, der alle paar Minuten ausgeführt wird, um Dateien mit einem anderen System zu synchronisieren, wobei das Warten auf den Abschluss der vorherigen Instanz die letzten Aktualisierungen möglicherweise um eine willkürlich lange Zeit verzögert. Wenn Sie stattdessen veranlassen, dass der Cron-Job beim Start alte Kopien von sich selbst löscht, können Sie dennoch fortfahren, und es ist wahrscheinlicher, dass die letzten Änderungen schnell verbreitet werden.
Austin Hemmelgarn
quelle