GNU/Linux >> Linux Esercitazione >  >> Linux

Lsyncd:sincronizza le directory locali con Linux remoto

Lsyncd (Daemon Mirror di sincronizzazione in tempo reale ) è una soluzione Linux leggera per la sincronizzazione di directory remote e locali. L'uso di questa soluzione Linux non influisce in alcun modo sulle prestazioni del filesystem locale.

[ Potrebbe piacerti anche:Come sincronizzare automaticamente due server Web in Linux ]

Dopo aver installato e configurato completamente Lsyncd , le directory locali e remote verranno sincronizzate in modo tale che qualsiasi modifica dei dati sulla directory locale venga annotata e aggiornata sulla directory del server remoto. I frequenti aggiornamenti delle directory e le azioni di sincronizzazione assicurano che le directory locali e remote di destinazione rimangano identiche.

Installa Lsyncd nel server Linux

Questo Lsyncd la soluzione di sincronizzazione è supportata su varie piattaforme del sistema operativo Linux. A seconda della distribuzione Linux in uso, puoi installare Lsyncd da uno dei seguenti comandi:

Installa Lsyncd nelle distribuzioni basate su RHEL

$ sudo yum install epel-release
$ sudo yum install lsyncd

Installa Lsyncd in Fedora Linux

$ sudo dnf install lsyncd 

Installa Lsyncd in Debian, Ubuntu e Mint

$ sudo apt install lsyncd

Installa Lsyncd in OpenSUSE

$ sudo zypper install lsyncd

Installa Lsyncd in Arch Linux

$ sudo pacman -S git base-devel
$ git clone https://aur.archlinux.org/lsyncd.git
$ cd lsyncd
$ makepkg -sri

Utilizzo di Lsyncd per sincronizzare directory locali e remote in Linux

È necessario essere sul computer locale e disporre dell'accesso autenticato a un computer o server remoto affinché la sincronizzazione della directory bidirezionale abbia successo. Da parte mia, il server remoto che sto utilizzando ha l'indirizzo IP 18.118.208.XX .

Sul computer locale, è necessario configurare l'accesso ssh senza password al computer/server remoto menzionato.

L'accesso ssh senza password consente l'automazione della sincronizzazione delle directory da locale a remota di Lsyncd senza interruzioni.

Configura l'accesso senza password SSH a Linux remoto

1. Genera la chiave SSH sul computer locale per l'accesso senza password al server remoto.

$ sudo ssh-keygen -t rsa  

Quando ti viene chiesto di inserire una passphrase, lascia il campo vuoto premendo [Invio ] sulla tastiera.

2. Copia la chiave pubblica SSH generata sul tuo computer remoto. Ora dobbiamo trasferire una copia della chiave pubblica SSH generata al server/macchina remoto menzionato.

$ sudo ssh-copy-id [email protected]

Con questo risultato, qualsiasi accesso futuro a questo server remoto (18.118.208.79 ) tramite il comando SSH (ssh [email protected] ) dovrebbe essere senza password.

$ ssh [email protected]

Potresti anche voler assicurarti che il tuo computer remoto sia /etc/ssh/sshd_config il file ha PubKeyAuthentication impostare su yes e PermitRootLogin impostato su senza password.

Riavvia il servizio sshd sulla macchina remota.

$ sudo systemctl restart ssh.service

Se la PubKeyAuthentication e PermitRootLogin i campi non erano abilitati sul tuo server e sei riuscito ad abilitarli, inizia dal passaggio 1 per rigenerare la chiave SSH pubblica e poi ricopiala (passaggio 2) sul server remoto.

Sincronizza le directory locali con Remote utilizzando Lsyncd

Crea la directory remota/di destinazione necessaria sulla tua macchina remota

$ mkdir linuxshelltips_remotesync

Crea la directory di origine necessaria sul tuo computer locale.

$ mkdir linuxshelltips_localsync

Popolare questa directory di origine con alcuni file:

$ sudo touch linuxshelltips_localsync/file{1..16}

Crea Lsyncd File di registro e di stato.

$ sudo mkdir /var/log/lsyncd
$ sudo touch /var/log/lsyncd/lsyncd.{log,status}

Crea lsyncd associato directory di configurazione.

$ sudo mkdir /etc/lsyncd 

In questa directory, crea il file lsyncd.conf.lua file di configurazione.

$ sudo nano /etc/lsyncd/lsyncd.conf.lua

Popolalo con dati simili alla seguente acquisizione dello schermo

----
-- 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"
}

In questo file, l'origine è il percorso dei file che vogliamo sincronizzare sulla macchina locale, host punta al nome utente+indirizzo IP del server remoto e targetdir è la directory di destinazione sul server remoto.

Quindi, avvia e abilita Lsyncd .

$ sudo systemctl restart lsyncd 
$ sudo systemctl enable lsyncd

Accedi al server remoto per confermare la presenza dei file di directory sincronizzati. Verifica se è avvenuta una sincronizzazione dei file.

$ sudo ssh [email protected]

Come puoi vedere, il comando ls prima di avviare lsyncd sulla macchina locale mostrava zero file e quello dopo averlo eseguito mostra i file copiati dalla macchina locale.

Devi solo installare Lsyncd sulla macchina host/sorgente con i file di directory da sincronizzare. È facile da implementare e offre una soluzione di sincronizzazione dei file che funziona per macchine da locale a remoto e anche directory da locale a locale.


Linux
  1. Gestisci le home directory degli utenti Linux con systemd-homed

  2. Howto:Programmazione in C con directory su Linux

  3. Vai su diverse directory in Linux

  4. Modifica remota con editor locale (Linux)

  5. Come confrontare le differenze tra le directory (linux)

Come confrontare le directory con Meld su Linux

Comando Linux rmdir per principianti (con esempi)

Comandi SSH in Linux con esempi di utilizzo

Come sincronizzare i file con Unison su Linux

Suggerimenti Vim:modifica file remoti con Vim su Linux

Mantenere sincronizzati file e directory Linux con rsync