Cómo instalar y usar Lsyncd en CentOS 7 / RHEL 7

Lsyncd significa “Demonio de sincronización en vivo“, como sugiere el nombre, lsyncd se usa para sincronizar o replicar archivos y directorios local y remotamente después de un intervalo de tiempo específico. Utiliza rsync y ssh en el backend.

Lsyncd funciona en la arquitectura Maestro y Esclavo donde monitorea el directorio en el servidor maestro, si se realizan cambios o modificaciones, lsyncd replicará lo mismo en sus servidores esclavos después de un intervalo de tiempo específico.

En este artículo, discutiremos cómo instalar y usar lsyncd en CentOS 7 y RHEL 7.

Escenario: suponga que desea sincronizar la carpeta «/var/www/html» del servidor maestro al servidor esclavo

  • IP del servidor maestro = 192.168.1.14
  • IP del servidor esclavo = 192.168.1.15
  • Directorio a sincronizar = /var/www/html
Primero habilite la autenticación basada en clave entre el servidor maestro y el esclavo.

Inicie sesión en el servidor maestro y genere las claves pública y privada mediante el comando ssh-keygen.

lsyncd-ssh-keygen

Ahora copie la clave pública usando el comando ssh-copy-id al servidor esclavo

[[email protected] ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
Paso:1 Inicie sesión en el servidor maestro e instale el paquete Lsyncd

Instale los paquetes de dependencia de lsyncd usando el siguiente comando yum.

[[email protected] ~]# yum install lua lua-devel pkgconfig gcc asciidoc

Para instalar el paquete lsyncd usando el comando yum, primero habilite el repositorio EPEL ya que lsyncd rpm no está disponible en los repositorios predeterminados.

[[email protected] ~]# rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
[[email protected] ~]# yum install lsyncd
Paso:2 Configure el archivo de configuración de Lsyncd

Copie la configuración de muestra en /etc/lsyncd.conf

[[email protected] ~]# cp /usr/share/doc/lsyncd-2.1.5/examples/lrsync.lua /etc/lsyncd.conf

Agregue las siguientes líneas al archivo de configuración.

[[email protected] ~]# cat /etc/lsyncd.conf 
----
-- User configuration file for lsyncd.
--
-- Simple example for default rsync.
--
settings = {
 logfile = "/var/log/lsyncd.log",
 statusFile = "/var/log/lsyncd.stat",
 statusInterval = 2,
}
sync{
 default.rsync,
 source="/var/www/html",
 target="192.168.1.15:/var/www/html",
 rsync={rsh ="/usr/bin/ssh -l root -i /root/.ssh/id_rsa",}
}
[[email protected] ~]#

lsyncd-conf

Paso: 3 Inicie el servicio y actívelo al reiniciar
[[email protected] ~]# systemctl start lsyncd
[[email protected] ~]# systemctl enable lsyncd
ln -s '/usr/lib/systemd/system/lsyncd.service' '/etc/systemd/system/multi-user.target.wants/lsyncd.service'
Paso:4 Analice el informe de replicación y registros.

Como podemos ver que estamos usando “raíz” usuario para sincronizar datos, según sus requisitos, puede cambiar el nombre de usuario.

En el archivo de registro podemos ver el estado de la replicación, ya sea que la replicación esté completa o no.

[[email protected] ~]# tail -10 /var/log/lsyncd.log
Sun Jul 26 12:53:04 2015 Normal: recursive startup rsync: /var/www/html/ -> 192.168.1.15:/var/www/html/
Sun Jul 26 12:53:56 2015 Normal: Startup of "/var/www/html/" finished.
[[email protected] ~]#

Usando el archivo Stat, vemos el informe de estado de lsyncd. Ejemplo de muestra se muestra a continuación

[[email protected] ~]# more /var/log/lsyncd.stat 

Lsyncd status report at Sun Jul 26 12:53:58 2015
Sync1 source=/var/www/html/
There are 0 delays
Excluding:
 nothing.

Inotify watching 849 directories
 1: /var/www/html/
 2: /var/www/html/catalog/
 3: /var/www/html/catalog/controller/
 4: /var/www/html/catalog/controller/module/
 5: /var/www/html/catalog/controller/checkout/
 6: /var/www/html/catalog/controller/api/
 7: /var/www/html/catalog/controller/payment/
 8: /var/www/html/catalog/controller/tool/
 9: /var/www/html/catalog/controller/product/
 ---------------------
 848: /var/www/html/system/library/db/
 849: /var/www/html/system/modification/
[[email protected] ~]#

Entradas relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *