it-swarm-es.com

¿Existe una solución de copia de seguridad de Linux que funcione y que utilice inotify?

Se tarda una eternidad en retroceder. Antes de que podamos confiar en btrfs o ZFS para realizar copias de seguridad de instantáneas incrementales, ¿no sería bueno si hubiera un demonio que usara inotify para realizar un seguimiento de los archivos que realmente han cambiado para que las copias de seguridad se ejecuten más rápidamente? ¿Dónde está este programa?

¿Cómo hago una copia de seguridad de mi equipo Linux sin tener que rastrear todo el sistema de archivos cada vez? Me gustaría un programa que detecte las fotos nuevas o modificadas, el código fuente, etc. y las ponga en cola para copiarlas en mi NAS.

17
joeforker

Respondí mi propia pregunta con "yum search inotify". Se llama lsyncd y está alojado en el código de Google.

Desafortunadamente, parece que siempre ejecuta un rsync completo primero, por lo que aún no me ayudaría si mi computadora no estuviera encendida durante más de 14 horas seguidas.

Lsyncd usa rsync para sincronizar directorios locales con una máquina remota que ejecuta rsyncd. Lsyncd observa varios árboles de directorios a través de inotify. El primer paso después de agregar los relojes es sincronizar todos los directorios con el host remoto y luego sincronizar un solo archivo mediante la recopilación de los eventos inotify. Por lo tanto, lsyncd es una solución de espejo en vivo liviana que debería ser fácil de instalar y usar mientras se combina bien con su sistema. Consulte lsyncd --help para conocer las opciones detalladas de la línea de comandos.

11
joeforker

Hay un nuevo sistema llamado fsnotify que está diseñado para resolver las deficiencias de inotify que se introdujo para resolver los problemas de dnotify. fsnotify le permite ver un sistema de archivos completo sin mucho problema. Con suerte, fsnotify ayudará a resolver todos nuestros futuros problemas de copia de seguridad de Linux.

3
joeforker

Según la investigación (no las pruebas), parece que inotify no puede manejar la gran cantidad de archivos en la mayoría de los sistemas y/o es muy lento para hacerlo. El hilo en http://www.pubbs.net/kernel/200905/109416/ fue el más útil. Apuntó a una nueva característica de Linux que parece estar en la línea principal o dirigirse hacia ella, fsnotify, eso es en linux 2.6.31 y posterior.

2
user26055

Puede piratear algo con incron .

/ruta1 IN_CLOSE_WRITE rsync -au $ @/$ # backuphhost:/ruta
2
hayalci

Lsyncd sincroniza todo el árbol observado al inicio, porque en el 99% de los casos esto es lo más sensato. Desea el directorio en el host de destino que tiene en el host local; de lo contrario, las sincronizaciones pueden fallar y desea sincronizar las cosas que se perdió mientras estaba apagado. Sin embargo, si sabe lo que está haciendo, puede desactivar la sincronización de inicio, simplemente configure sync {..., startup = false} en el archivo de configuración Lsyncd.

con respecto a inotify, no es la cantidad de archivos sino la cantidad de directorios que consumen recursos. Un directorio es un reloj, independientemente de la cantidad de archivos que contenga.

fanotify basado en fsnotify como inotify parecía muy prometedor para las personas que veían toneladas de directorios, pero actualmente a partir de Linux 2.6.37 fanotify no informa eventos de cambio de nombre (mover) en absoluto, lo que lo hace inutilizable para un trabajo como este :-(

2
axkibe

He pasado 6 meses buscando la mejor solución para realizar lo que estás intentando hacer; copia de seguridad eficiente en un NAS. Después de la sincronización inicial, todo lo demás es suave como la mantequilla. La última versión de Lsyncd funciona bastante bien. He documentado lo que he hecho en el enlace de abajo. Simplemente sustituya los valores de su carpeta. Espero que esto ayude:

https://docs.google.com/document/d/1XpqM5h5YMwuQqzdknyDDnjcQVYGjAsyAxfYprqSnhd0/edit

1
Bobo

hay un nuevo sistema usado en asia, llamado sersync que en lugar de inotify-tool + rsync resolution http://code.google.com/p/sersync/ es muy fácil de usar.

0
skiller