GNU/Linux >> Tutoriales Linux >  >> Linux

¿Realizando operaciones de escritura atómica en un archivo en Bash?

Después de revisar la documentación de bash, esta pregunta y esta, todavía no tengo claro cómo puedo realizar operaciones de escritura atómica (agregar) a un archivo en bash. Tengo un script que se ejecuta en varias instancias y en algún momento debo escribir datos en un archivo:

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

¿Cómo es posible hacer que todas las operaciones de escritura de todos los scripts que se ejecutan simultáneamente en ese archivo sean atómicas (para que los datos de una instancia no se superpongan con los datos de otra)?

Respuesta aceptada:

Parece que necesitas usar flock como en el ejemplo de 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 

Y pon todos tus comandos que deben ser atómicos en ().


Linux
  1. El Bash'?

  2. ¿Está Mv Atomic en el Fs?

  3. ¿Escribir todo el desplazamiento hacia atrás de Tmux en un archivo?

  4. Bash:¿No existe tal archivo o directorio?

  5. Realizar operaciones de escritura atómica en un archivo en bash

Cómo leer un archivo línea por línea en Bash

Comando de fuente Bash

Bash:Agregar al archivo

Sustitución de cadena en Bash

35 ejemplos de secuencias de comandos Bash

Script Bash (III)