Lsyncd (Daemon espejo de sincronización en vivo ) es una solución ligera de Linux para sincronizar directorios remotos y locales. El uso de esta solución de Linux no afecta el rendimiento de su sistema de archivos local de ninguna manera.
[ También te puede interesar:Cómo sincronizar dos servidores web en Linux automáticamente ]
Una vez que haya instalado y configurado completamente Lsyncd , sus directorios locales y remotos se sincronizarán de modo que cualquier modificación de datos en el directorio local se anote y actualice en el directorio del servidor remoto. Las frecuentes actualizaciones de directorios y las acciones de sincronización aseguran que los directorios locales y remotos de destino permanezcan idénticos.
Instalar Lsyncd en el servidor Linux
Este Lsyncd La solución de sincronización es compatible con varias plataformas de sistemas operativos Linux. Dependiendo de la distribución de Linux que esté utilizando, puede instalar Lsyncd de uno de los siguientes comandos:
Instalar Lsyncd en distribuciones basadas en RHEL
$ sudo yum install epel-release $ sudo yum install lsyncd
Instalar Lsyncd en Fedora Linux
$ sudo dnf install lsyncd
Instalar Lsyncd en Debian, Ubuntu y Mint
$ sudo apt install lsyncd
Instalar Lsyncd en OpenSUSE
$ sudo zypper install lsyncd
Instalar Lsyncd en Arch Linux
$ sudo pacman -S git base-devel $ git clone https://aur.archlinux.org/lsyncd.git $ cd lsyncd $ makepkg -sri
Uso de Lsyncd para sincronizar directorios locales y remotos en Linux
Debe estar en su máquina local y tener acceso autenticado a una máquina o servidor remoto para que la sincronización de directorio bidireccional sea exitosa. Por mi parte, el servidor remoto que estoy usando tiene la dirección IP 18.118.208.XX .
En la máquina local, debemos configurar el inicio de sesión ssh sin contraseña en la máquina/servidor remoto mencionado.
El inicio de sesión ssh sin contraseña permite que la automatización de la sincronización de directorios locales a remotos de Lsyncd sea perfecta.
Configurar inicio de sesión sin contraseña SSH para Linux remoto
$ sudo ssh-keygen -t rsa
Cuando se le solicite ingresar una frase de contraseña, deje el campo en blanco presionando [Enter ] en tu teclado.
$ sudo ssh-copy-id [email protected]
Con este logro, cualquier acceso futuro a este servidor remoto (18.118.208.79 ) a través del comando SSH (ssh [email protected] ) no debe tener contraseña.
$ ssh [email protected]
También es posible que desee asegurarse de que /etc/ssh/sshd_config de su máquina remota el archivo tiene PubKeyAuthentication establecer en yes
y PermitRootLogin configurado como sin contraseña.
Reinicie el servicio sshd en la máquina remota.
$ sudo systemctl restart ssh.service
Si PubKeyAuthentication y PermitRootLogin los campos no estaban habilitados en su servidor y logró habilitarlos, comience desde el paso 1 para volver a generar la clave SSH pública y luego vuelva a copiarla (paso 2) en el servidor remoto.
Sincronizar directorios locales con remotos usando Lsyncd
Cree el directorio de destino/remoto necesario en su máquina remota
$ mkdir linuxshelltips_remotesync
Cree el directorio fuente necesario en su máquina local.
$ mkdir linuxshelltips_localsync
Rellene este directorio de origen con algunos archivos:
$ sudo touch linuxshelltips_localsync/file{1..16}
Crear Lsyncd Archivos de registro y estado.
$ sudo mkdir /var/log/lsyncd $ sudo touch /var/log/lsyncd/lsyncd.{log,status}
Crear lsyncd asociado directorio de configuración.
$ sudo mkdir /etc/lsyncd
En este directorio, cree el lsyncd.conf.lua archivo de configuración.
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
Rellénelo con datos similares a la siguiente captura de pantalla
---- -- User configuration file for lsyncd. ---- settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsyncssh, source = "/home/dnyce/linuxshelltips_localsync", host = "[email protected]", targetdir = "/home/ubuntu/linuxshelltips_remotesync" }
En este archivo, la fuente es la ruta a los archivos que queremos sincronizar en la máquina local, el host apunta al nombre de usuario+dirección IP del servidor remoto y targetdir es el directorio de destino en el servidor remoto.
A continuación, inicie y habilite Lsyncd .
$ sudo systemctl restart lsyncd $ sudo systemctl enable lsyncd
Acceda al servidor remoto para confirmar la presencia de los archivos de directorio sincronizados. Vea si se realizó alguna sincronización de archivos.
$ sudo ssh [email protected]
Como puede ver, el comando ls antes de iniciar lsyncd en la máquina local mostraba cero archivos y el comando después de ejecutarlo muestra los archivos copiados de la máquina local.
Solo necesitas instalar Lsyncd en la máquina host/fuente con los archivos de directorio que necesita sincronizar. Es fácil de implementar y le brinda una solución de sincronización de archivos que funciona para máquinas locales a remotas y también para directorios locales a locales.