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

Durchführen von atomaren Schreibvorgängen in einer Datei in Bash?

Nachdem ich die Bash-Dokumentation, diese Frage und diese durchgegangen bin, ist mir immer noch nicht klar, wie ich atomare Schreiboperationen (Anhängen) an einer Datei in Bash durchführen kann. Ich habe ein Skript, das in mehreren Instanzen ausgeführt wird und irgendwann Daten in eine Datei schreiben muss:

echo "$RESULT" >> `pwd`/$TEMP_DIR/$OUT_FILE

Wie ist es möglich, alle Schreibvorgänge von allen gleichzeitig ausgeführten Skripten in diese Datei atomar zu machen (damit Daten von einer Instanz nicht mit Daten einer anderen überlappen)?

Akzeptierte Antwort:

Es scheint, dass Sie flock verwenden müssen wie im Beispiel von man (http://linux.die.net/man/1/flock)

(
flock -x 200

# Put here your commands that must do some writes atomically

) 200>/var/lock/mylockfile 

Und fügen Sie alle Ihre Befehle, die atomar sein müssen, in ().

ein
Linux
  1. Kann ein Bash-Skript mit einer Datei verknüpft werden?

  2. Alle Tmux-Scrollbacks in eine Datei schreiben?

  3. Wie schreibe ich mit Bash Integer in eine Binärdatei?

  4. Bash:Keine solche Datei oder Verzeichnis?

  5. Durchführen von atomaren Schreibvorgängen in einer Datei in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

Bash-Quellbefehl

Bash:An Datei anhängen

Ersetzen von Zeichenfolgen in Bash

35 Bash-Skriptbeispiele

Bash-Scripting(III)