Hay un directorio A
cuyos contenidos son cambiados frecuentemente por otras personas.
Hice un directorio personal B
donde guardo todos los archivos que alguna vez han estado A
.
Actualmente, sólo de vez en cuando corro rsync
para obtener los archivos a ser subidos del A
a B
. Sin embargo, temo la posibilidad de que algunos archivos se agreguen A
y luego se eliminen A
antes de que tenga la oportunidad de copiarlos B
.
¿Cuál es la mejor manera de evitar que esto ocurra? Idealmente, me gustaría que mi script de respaldo actual se ejecute cada vez que A
se cambie el contenido de .
fuente
incrond
También puede ser de interés./etc/profile
para todo el sistema o.bash_profile
solo para su usuario. Para ejecutarlo después del arranque, depende de su sabor de Unix / Linux;/etc/rc.local
,/etc/rc.d/
o/etc/init.d/
--monitor
conmutador (y canalizar la salida a su bucle en su lugar), de lo contrario, hay una sobrecarga cuandoinotifywait
se inicia una y otra vezEstrictamente hablando, si alguien suelta un archivo y lo elimina muy rápidamente, es posible que se lo pierda. El uso de inotify (en Linux, o una característica similar en otros unices) hace que la ventana de riesgo sea pequeña.
Si puede montar el sistema de archivos de su elección en ese directorio (me doy cuenta de que esto puede no ser una opción), puede poner uno que registre todas las versiones de archivo, por ejemplo, copyfs .
fuente
Pruebe la
entr
herramienta de línea de comandos que puede ejecutar comandos arbitrarios cuando cambian los archivos. Desde la versión 2.9,-d
se agregó una opción de observación de directorio ( ) para reaccionar a los eventos cuando se agrega un nuevo archivo a un directorio.Ejemplo para ejecutar la utilidad si se agrega un nuevo archivo al proyecto:
La única implicación de esto es que si aparece un nuevo archivo, debe salir para permitir que un bucle de shell externo vuelva a escanear el sistema de archivos.
Aquí está la versión sin una opción de visualización de directorio:
Aquí hay un ejemplo más simple según sus necesidades:
Visite el sitio web entrproject.org para más detalles.
fuente
El programa que estás buscando es
inotify
.fuente