GNU/Linux >> Linux Esercitazione >  >> Linux

Eseguire operazioni di scrittura atomica in un file in Bash?

Dopo aver esaminato la documentazione di bash, questa e questa domanda non mi è ancora chiaro come posso eseguire operazioni di scrittura atomica (aggiungere) su un file in bash. Ho uno script che viene eseguito in più istanze e ad un certo punto devo scrivere i dati in un file:

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

Come è possibile rendere atomiche tutte le operazioni di scrittura da tutti gli script in esecuzione contemporaneamente su quel file (in modo che i dati di un'istanza non si sovrappongano ai dati di un'altra)?

Risposta accettata:

Sembra che tu debba usare flock come nell'esempio di 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 

E inserisci tutti i tuoi comandi che devono essere atomici in ().


Linux
  1. Come scrivere un ciclo in Bash

  2. Uno script Bash può essere agganciato a un file?

  3. Il Bash '?

  4. Mv Atomic è sulle F?

  5. Scrivi tutto Tmux Scorri indietro su un file?

Come leggere un file riga per riga in Bash

Comando sorgente Bash

Bash:aggiungi al file

Sostituzione di String in Bash

35 Esempi di script Bash

Scripting Bash(III)