files – ¿Cómo ejecutar un comando cuando se actualizan los contenidos de un directorio?

Pregunta:

Hay un directorio A cuyo contenido es cambiado con frecuencia por otras personas.

He creado un directorio personal B donde guardo todos los archivos que alguna vez han estado en A

Actualmente, solo ejecuto rsync ocasionalmente para hacer una copia de seguridad de los archivos de A a B Sin embargo, temo la posibilidad de que algunos archivos se agreguen en A y luego se eliminen de A antes de tener la oportunidad de copiarlos en B

¿Cuál es la mejor manera de evitar que esto ocurra? Idealmente, me gustaría que mi secuencia de comandos de copia de seguridad actual se ejecute cada vez que se modifique el contenido de A

Respuesta:

Si tiene inotify-tools instaladas, puede usar inotifywait para activar una acción si se escribe un archivo o directorio en:

#!/bin/sh
dir1=/path/to/A/
while inotifywait -qqre modify "$dir1"; do
    /run/backup/to/B 
done

Donde el -qq es completamente silencioso, -r es recursivo (si es necesario) y -e es el evento a monitorear, en este caso modify . Del man inotifywait :

modificar
Se escribió un archivo observado o un archivo dentro de un directorio observado.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım