GNU/Linux >> Znalost Linux >  >> Linux

Provádění operací atomového zápisu v souboru v Bash?

Po prostudování dokumentace bash, této a této otázky mi stále není jasné, jak mohu provádět operace atomického zápisu (připojení) k souboru v bash. Mám skript, který se spouští ve více instancích a v určitém okamžiku musí zapisovat data do souboru:

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

Jak je možné, aby byly všechny operace zápisu ze všech souběžně spuštěných skriptů do tohoto souboru atomické (takže data z jedné instance nepřekrývají data z jiné)?

Přijatá odpověď:

Zdá se, že musíte použít flock jako v příkladu z 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 

A vložte všechny své příkazy, které musí být atomické, do ().


Linux
  1. Může být Bash skript připojen k souboru?

  2. The Bash ‘?

  3. Je MV Atomic na Fs?

  1. Zapsat všechny rolování Tmux do souboru?

  2. Zapsat do souboru .txt?

  3. Shell - Zápis proměnného obsahu do souboru

  1. atomic create soubor, pokud neexistuje z bash skriptu

  2. Bash:Žádný takový soubor nebo adresář?

  3. Provádění operací atomického zápisu do souboru v bash