Lsyncd (Live Syncing Mirror Daemon ) je odlehčené linuxové řešení pro synchronizaci vzdálených a místních adresářů. Použití tohoto linuxového řešení žádným způsobem neovlivňuje výkon vašeho lokálního souborového systému.
[ Také by se vám mohlo líbit:Jak automaticky synchronizovat dva webové servery v Linuxu ]
Po úplné instalaci a konfiguraci Lsyncd , budou vaše místní a vzdálené adresáře synchronizovány tak, že jakákoli změna dat v místním adresáři bude zaznamenána a aktualizována v adresáři vzdáleného serveru. Časté aktualizace adresářů a synchronizační akce zajišťují, že cílové místní a vzdálené adresáře zůstanou stejné.
Nainstalujte Lsyncd na Linux Server
Tento Lsyncd řešení synchronizace je podporováno na různých platformách operačních systémů Linux. V závislosti na distribuci Linuxu, kterou používáte, můžete nainstalovat Lsyncd z jednoho z následujících příkazů:
Nainstalujte Lsyncd v distribucích založených na RHEL
$ sudo yum install epel-release $ sudo yum install lsyncd
Nainstalujte Lsyncd do Fedora Linux
$ sudo dnf install lsyncd
Nainstalujte Lsyncd v Debianu, Ubuntu a Mintu
$ sudo apt install lsyncd
Nainstalujte Lsyncd v OpenSUSE
$ sudo zypper install lsyncd
Nainstalujte Lsyncd v Arch Linuxu
$ sudo pacman -S git base-devel $ git clone https://aur.archlinux.org/lsyncd.git $ cd lsyncd $ makepkg -sri
Použití Lsyncd k synchronizaci místních a vzdálených adresářů v Linuxu
Aby byla obousměrná synchronizace adresářů úspěšná, musíte být na svém místním počítači a mít ověřený přístup ke vzdálenému počítači nebo serveru. Na mém konci má vzdálený server, který používám, IP adresu 18.118.208.XX .
Na místním počítači musíme nastavit přihlašování pomocí ssh bez hesla ke zmíněnému vzdálenému počítači/serveru.
Ssh přihlášení bez hesla umožňuje bezproblémovou automatizaci synchronizace lokálních a vzdálených adresářů Lsyncd.
Nastavte SSH bezheslové přihlášení do vzdáleného Linuxu
1. Vygenerujte klíč SSH na místním počítači pro přístup ke vzdálenému serveru bez hesla.
$ sudo ssh-keygen -t rsa
Až budete vyzváni k zadání přístupové fráze, ponechte pole prázdné stisknutím [Enter ] na klávesnici.
2. Zkopírujte vygenerovaný veřejný klíč SSH na váš vzdálený počítač. Nyní potřebujeme přenést kopii vygenerovaného veřejného klíče SSH na zmíněný vzdálený server/stroj.
$ sudo ssh-copy-id [email protected]
S tímto úspěchem bude jakýkoli budoucí přístup k tomuto vzdálenému serveru (18.118.208.79 ) prostřednictvím příkazu SSH (ssh [email protected] ) by měl být bez hesla.
$ ssh [email protected]
Můžete se také ujistit, že /etc/ssh/sshd_config vašeho vzdáleného počítače soubor má PubKeyAuthentication nastavte na yes
a PermitRootLogin nastavit na bez hesla.
Restartujte službu sshd na vzdáleném počítači.
$ sudo systemctl restart ssh.service
Pokud PubKeyAuthentication a PermitRootLogin pole nebyla na vašem serveru povolena a podařilo se vám je povolit, začněte od kroku 1 znovu vygenerovat veřejný klíč SSH a poté jej znovu zkopírujte (krok 2) na vzdálený server.
Synchronizujte místní adresáře se vzdáleným pomocí Lsyncd
Vytvořte potřebný vzdálený/cílový adresář na vašem vzdáleném počítači
$ mkdir linuxshelltips_remotesync
Vytvořte potřebný zdrojový adresář na místním počítači.
$ mkdir linuxshelltips_localsync
Naplňte tento zdrojový adresář některými soubory:
$ sudo touch linuxshelltips_localsync/file{1..16}
Vytvořte Lsyncd Log a stavové soubory.
$ sudo mkdir /var/log/lsyncd $ sudo touch /var/log/lsyncd/lsyncd.{log,status}
Vytvořte přidružený lsyncd konfigurační adresář.
$ sudo mkdir /etc/lsyncd
V tomto adresáři vytvořte lsyncd.conf.lua konfigurační soubor.
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
Naplňte jej daty podobnými následujícímu snímku obrazovky
---- -- 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" }
V tomto souboru je zdrojem cesta k souborům, které chceme synchronizovat na místním počítači, hostitel odkazuje na uživatelské jméno + IP adresu vzdáleného serveru a targetdir je cílový adresář na vzdáleném serveru.
Dále spusťte a povolte Lsyncd .
$ sudo systemctl restart lsyncd $ sudo systemctl enable lsyncd
Přistupte ke vzdálenému serveru a potvrďte přítomnost synchronizovaných adresářových souborů. Podívejte se, zda proběhla nějaká synchronizace souborů.
$ sudo ssh [email protected]
Jak můžete vidět, příkaz ls před spuštěním lsyncd na místním počítači nezobrazoval žádné soubory a příkaz po spuštění zobrazuje zkopírované soubory z místního počítače.
Potřebujete pouze nainstalovat Lsyncd na hostitelském/zdrojovém počítači se soubory adresáře, které potřebujete synchronizovat. Je snadno implementovatelný a poskytuje vám řešení synchronizace souborů, které funguje pro místní-vzdálené počítače a také místní-lokální adresáře.