¿Es posible sincronizar dos directorios de Linux en tiempo real?

25

Me gustaría sincronizar un directorio de un disco duro interno a un disco duro externo.

Cuando escribo o modifico un archivo en mi disco duro interno, automáticamente el mismo archivo se copiará en el disco duro externo ... y adiós respaldo;)

Esto sería algo así como un RAID con un disco duro externo.

es posible?

fuerte
fuente
22
Me temo que pensar "adiós respaldo" casi nunca es apropiado o correcto.
Ben Pilbrow
Seriamente. Lo que dijo Ben. Esto NO es un sustituto de la copia de seguridad.
Duncan X Simpson

Respuestas:

8

En tiempo real, que yo sepa, solo hay DRBD . Pero no creo que se aplique a su situación, ya que cuando elimine un archivo, también lo eliminará en el disco externo. Más fácilmente puede usar rsync y un script cron que se ejecuta cada pocos minutos.

PiL
fuente
Gracias por su respuesta. Pero si rsync "cron" se ejecuta cada ..5 minutos, ¿compromete el rendimiento? ¿No es demasiado pesado (verifica todos los archivos si se cambia algo?)?
stighy
Es por eso que inventaron el sistema de archivos con capacidades de instantáneas;)
PiL
1
DRBD puede ser un poco complicado de configurar, si necesita ayuda para configurarlo, escribí un buen artículo: geek-kb.com/install-and-configure-drbd-centos-6
Itai Ganot
30

lsyncd parece ser la solución perfecta. combina inotify (función integrada de kernel que la bruja vigila los cambios de archivo en un árbol de directorios) y rsync (herramienta de sincronización de archivos multiplataforma).

lsyncd -rsyncssh /home remotehost.org backup-home/

Cita de github:

Lsyncd observa una interfaz de monitor de eventos de árboles de directorio local (inotify o fsevents). Agrega y combina eventos durante unos segundos y luego genera uno (o más) proceso (s) para sincronizar los cambios. Por defecto esto es rsync. Lsyncd es, por lo tanto, una solución liviana de espejo en vivo que es relativamente fácil de instalar, no requiere nuevos sistemas de archivos o dispositivos de bloqueo y no obstaculiza el rendimiento del sistema de archivos local.

jens
fuente
1
la estafa es que no es bidireccional
tymik
8

Simplemente puede crear un RAID1 de software en sus discos duros internos y externos. Para el sistema, no hay diferencia si se trata de un disco duro incorporado o un almacenamiento masivo conectado externamente.

¡Pero RAID no es una copia de seguridad! ¿Qué sucede si eliminas accidentalmente un archivo en tu disco duro? También se elimina en su unidad de "copia de seguridad" externa.

Las copias de seguridad generalmente comprenden más de una generación de archivos para que pueda recuperar archivos borrados accidentalmente.

joschi
fuente
44
Un gran +1 para el explícito "RAID no es copia de seguridad".
nickgrim
Además, una incursión de software con miembros del disco duro interno y externo probablemente sea muy lenta, poco confiable y designada para romperse con bastante frecuencia.
David
2

incron (como se me sugirió en este sitio a principios de este año).

Sin embargo, todavía no es un sustituto para un procedimiento de respaldo adecuado.

Matthew Iselin
fuente
3
probablemente mejor sería grabarlo en piedra.
Dee
1
@Dee Por favor explique este comentario. ¿Incron no es una buena solución?
imolit
0

git-annex también se puede utilizar para lograr esto.

git-annex permite administrar archivos con git, sin verificar el contenido del archivo en git. Si bien eso puede parecer paradójico, es útil cuando se trata de archivos más grandes de lo que actualmente puede manejar git, ya sea debido a limitaciones en la memoria, el tiempo o el espacio en disco

Hay un tutorial para actualizar rápidamente a los usuarios con git-annex

ypid
fuente
Si bien esto puede responder teóricamente la pregunta, [sería preferible] incluir aquí las partes esenciales de la respuesta y proporcionar el enlace para referencia.
Itai Ganot