¿Hay alguna herramienta disponible para sincronizar archivos entre dos o más servidores Linux inmediatamente después de escribir el archivo en el disco? El rsync
comando no me conviene en esto, porque si configuro rsync
en cron, el tiempo mínimo que puedo configurar es de 1 minuto, pero lo necesito en tiempo real.
linux
files
synchronization
Sourav
fuente
fuente
Respuestas:
No lo he usado yo mismo, pero lo leí recientemente. Hay un demonio llamado
lsyncd
, que supongo que hace exactamente lo que necesita.Lea más sobre esto AQUÍ
fuente
lsyncd
usainotify
& debería ser el más rápido a nivel fs. Más en github.com/axkibe/lsyncd . Desde esa página: 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 de espejo en vivo liviana que es relativamente fácil de instalar, no requiere nuevos sistemas de archivos o dispositivos de bloque y no obstaculiza el rendimiento del sistema de archivos local.Inotify-tools
Proporcionar una interfaz para
inotify
, que consta de:inotifywait
Este comando simplemente bloquea los eventos de inotify, por lo que es apropiado para su uso en scripts de shell. Puede ver cualquier conjunto de archivos y directorios, y puede ver recursivamente árboles de directorios completos.
inotifywatch
Este comando recopila estadísticas de uso del sistema de archivos y genera recuentos de cada evento inotify.
fuente
Sincronización de archivos en tiempo real entre múltiples servidores en modo maestro múltiple
Existe una buena herramienta llamada
lsyncd
para sincronizar archivos entre múltiples servidores en tiempo real. Aquí lo he intentado con dos servidores.Hosts: Servidor1 y Servidor2
Sistema operativo utilizado: CentOS 7
Instale los siguientes paquetes en ambos servidores.
generar clave ssh en ambos servidores y agregar al
authorized_keys
archivo. [agregue la clave pública del servidor1 al servidor2authorized_keys
y la clave pública del servidor2 alauthorized_keys
archivo del servidor1 ]Configuración del servidor 1
Abra
/etc/lsyncd.conf
y comente la configuración predeterminada utilizando--
al principio de la línea y agregue la configuración siguiente al archivo.Cambiar la IP de destino en el
target
parámetro.Puede cambiar el
delay
parámetro según sus necesidades. Aquí se establece 1 segundo.Ahora cree el directorio de registro.
Permita que el
lsyncd
servicio se inicie automáticamente.Inicia el servicio.
Configuración del servidor2
Siga la misma configuración que Servidor1 y cambie la
target
IP.Ahora la sincronización está configurada.
Puedes consultar la actividad desde
tailf /var/log/lsyncd/lsyncd.log
Gracias a MelBurslan por su sugerencia.
fuente
La sincronización puede ser una opción. Es extremadamente rápido, la transferencia está encriptada y hay clientes para múltiples plataformas. Utiliza "inotify" para sincronizar los archivos modificados al instante.
fuente
Debería abordar esto con una solución de tipo de sistema de archivos en clúster: una simple sincronización entre las dos máquinas no le dará una respuesta en tiempo real.
fuente
"SIOS Protection Suite para Linux" puede ofrecer esto, en AWS.
http://www.linuxclustering.net/2016/03/21/step-by-step-how-to-configure-a-linux-failover-cluster-in-amazon-ec2-without-shared-storage-amazon- aws-sanless-cluster / # InstallConfigureCluster
fuente