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.