Lsyncd (ライブ同期ミラーデーモン )は、リモートディレクトリとローカルディレクトリを同期するための軽量Linuxソリューションです。このLinuxソリューションを使用しても、ローカルファイルシステムのパフォーマンスにはまったく影響しません。
[あなたも好きかもしれません:Linuxで2つのWebサーバーを自動的に同期する方法]
Lsyncdを完全にインストールして構成したら 、ローカルディレクトリとリモートディレクトリが同期され、ローカルディレクトリでのデータの変更がリモートサーバーディレクトリで記録および更新されます。頻繁なディレクトリ更新と同期アクションにより、対象のローカルディレクトリとリモートディレクトリが同一のままになります。
LinuxサーバーにLsyncdをインストールする
このLsyncd 同期ソリューションは、さまざまなLinuxオペレーティングシステムプラットフォームでサポートされています。使用しているLinuxディストリビューションに応じて、 Lsyncdをインストールできます。 次のいずれかのコマンドから:
RHELベースのディストリビューションにLsyncdをインストールする
$ sudo yum install epel-release $ sudo yum install lsyncd
FedoraLinuxにLsyncdをインストールする
$ sudo dnf install lsyncd
Debian、Ubuntu、MintにLsyncdをインストールする
$ sudo apt install lsyncd
OpenSUSEにLsyncdをインストールする
$ sudo zypper install lsyncd
ArchLinuxにLsyncdをインストールする
$ sudo pacman -S git base-devel $ git clone https://aur.archlinux.org/lsyncd.git $ cd lsyncd $ makepkg -sri
Lsyncdを使用したLinuxのローカルディレクトリとリモートディレクトリの同期
双方向のディレクトリ同期を成功させるには、ローカルマシン上にいて、リモートマシンまたはサーバーへのアクセスを認証している必要があります。私の側では、使用しているリモートサーバーのIPアドレスは 18.118.208.XXです。 。
ローカルマシンで、前述のリモートマシン/サーバーへのパスワードなしのsshログインを設定する必要があります。
パスワードなしのsshログインにより、Lsyncdのローカルからリモートへのディレクトリ同期の自動化をシームレスに行うことができます。
リモートLinuxへのSSHパスワードなしログインの設定
1。 リモートサーバーにパスワードなしでアクセスできるように、ローカルマシンでSSHキーを生成します。
$ sudo ssh-keygen -t rsa
パスフレーズの入力を求められたら、[ Enterを押してフィールドを空白のままにします ]キーボード上。
2。 生成されたSSH公開鍵をリモートマシンにコピーします。次に、生成されたSSH公開鍵のコピーを上記のリモートサーバー/マシンに転送する必要があります。
$ sudo ssh-copy-id [email protected]
この成果により、このリモートサーバーへの今後のアクセス( 18.118.208.79 )SSHコマンド( ssh [email protected] )パスワードなしである必要があります。
$ ssh [email protected]
リモートマシンの/etc / ssh / sshd_configを確認することもできます。 ファイルにPubKeyAuthenticationがあります yes
に設定 およびPermitRootLogin パスワードなしに設定します。
リモートマシンでsshdサービスを再起動します。
$ sudo systemctl restart ssh.service
PubKeyAuthenticationの場合 およびPermitRootLogin サーバーでフィールドが有効になっておらず、有効にできた場合は、手順1から開始して公開SSHキーを再生成し、それをリモートサーバーに再コピーします(手順2)。
Lsyncdを使用してローカルディレクトリをリモートと同期する
リモートマシンに必要なリモート/宛先ディレクトリを作成します
$ mkdir linuxshelltips_remotesync
ローカルマシンに必要なソースディレクトリを作成します。
$ mkdir linuxshelltips_localsync
このソースディレクトリにいくつかのファイルを入力します:
$ sudo touch linuxshelltips_localsync/file{1..16}
Lsyncdを作成します ログファイルとステータスファイル。
$ sudo mkdir /var/log/lsyncd $ sudo touch /var/log/lsyncd/lsyncd.{log,status}
関連するlsyncdを作成します 構成ディレクトリ。
$ sudo mkdir /etc/lsyncd
このディレクトリの下に、 lsyncd.conf.luaを作成します 構成ファイル。
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
次のスクリーンキャプチャのようなデータを入力します
---- -- 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" }
このファイルでは、ソースはローカルマシンで同期するファイルへのパスであり、ホストはリモートサーバーのユーザー名+ IPアドレスを指し、 targetdir はリモートサーバーの宛先ディレクトリです。
次に、 Lsyncdを起動して有効にします 。
$ sudo systemctl restart lsyncd $ sudo systemctl enable lsyncd
リモートサーバーにアクセスして、同期されたディレクトリファイルの存在を確認します。ファイルの同期が行われたかどうかを確認します。
$ sudo ssh [email protected]
ご覧のとおり、ローカルマシンでlsyncdを開始する前のlsコマンドはゼロファイルを表示し、実行後のlsコマンドはローカルマシンからコピーされたファイルを表示します。
Lsyncdをインストールするだけで済みます 同期する必要のあるディレクトリファイルを使用するホスト/ソースマシン上。実装は簡単で、ローカルからリモートのマシンおよびローカルからローカルのディレクトリで機能するファイル同期ソリューションを提供します。