GNU/Linux >> Tutoriales Linux >  >> Linux

Lsyncd:sincroniza directorios locales con Linux remoto

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

1. Genere la clave SSH en la máquina local para acceder sin contraseña al servidor 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.

2. Copie la clave pública SSH generada en su máquina remota. Ahora necesitamos transferir una copia de la clave pública SSH generada a la máquina/servidor remoto mencionado.

$ 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.


Linux
  1. Cómo sincronizar directorios usando Lsyncd en Ubuntu 20.04

  2. Comando SCP en Linux:cómo usarlo, con ejemplos

  3. Ssh:¿Copiar un archivo de nuevo al sistema local con Ssh?

  4. Linux:¿Suid no tiene efecto en los directorios con Linux?

  5. Howto:programación en C con directorios en Linux

Cómo comparar directorios con Meld en Linux

Comando Linux rmdir para principiantes (con ejemplos)

Comandos SSH en Linux con ejemplos de uso

Cómo sincronizar archivos con Unison en Linux

Consejos de Vim:edite archivos remotos con Vim en Linux

Mantener los archivos y directorios de Linux sincronizados con rsync