No lo he usado yo mismo, pero lo leí recientemente. Hay un demonio llamado lsyncd
, que supongo que hace exactamente lo que necesitas.
Lea más sobre esto AQUÍ
Sincronización de archivos en tiempo real entre varios servidores en modo multimaestro
Hay una buena herramienta llamada lsyncd
para sincronizar archivos entre múltiples servidores en tiempo real. Aquí lo he probado con dos servidores.
Anfitriones:Servidor1 y Servidor2
Sistema operativo utilizado:CentOS 7
Instale los siguientes paquetes en ambos servidores.
# yum install -y epel-release
# yum -y install lua lua-devel pkgconfig gcc asciidoc lsyncd
generar ssh-key en ambos servidores y agregar a authorized_keys
expediente. [agregue la clave pública del servidor1 al authorized_keys
del servidor2 y la clave pública del servidor2 al authorized_keys
del servidor1 archivo]
Configuración del servidor 1
Abrir /etc/lsyncd.conf
y comente la configuración predeterminada usando --
al comienzo de la línea y agregue la siguiente configuración al archivo.
settings {
logfile = "/var/log/lsyncd/lsyncd.log",
delay = 1
}
sync {
default.rsync,
source="/home/test/public_html/",
target="server2:/home/test/public_html/",
rsync = {
compress = true,
acls = true,
verbose = true,
owner = true,
group = true,
perms = true,
rsh = "/usr/bin/ssh -p 22 -o StrictHostKeyChecking=no"
}
}
Cambia la IP de destino en target
parámetro.
Puedes cambiar el delay
parámetro según su requisito. Aquí se establece 1 segundo.
Ahora cree el directorio de registro.
# mkdir -p /var/log/lsyncd
Habilite el lsyncd
servicio para iniciarse automáticamente.
# systemctl enable lsyncd.service
Inicie el servicio.
# systemctl start lsyncd.service
Configuración del Servidor2
Siga la misma configuración que Server1 y cambie el 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.
Inotify-herramientas
Proporcionar una interfaz para inotify
, compuesto por:
inotifywait
Este comando simplemente bloquea los eventos de notificación, lo que lo hace apropiado para su uso en scripts de shell. Puede observar cualquier conjunto de archivos y directorios, y puede observar de forma recursiva árboles de directorios completos.
inotifywatch
Este comando recopila estadísticas de uso del sistema de archivos y genera recuentos de cada evento inotify.