GNU/Linux >> Linux の 問題 >  >> Linux

Lsyncd –ローカルディレクトリをリモートLinuxと同期する

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をインストールするだけで済みます 同期する必要のあるディレクトリファイルを使用するホスト/ソースマシン上。実装は簡単で、ローカルからリモートのマシンおよびローカルからローカルのディレクトリで機能するファイル同期ソリューションを提供します。


Linux
  1. systemd-homedを使用してLinuxユーザーのホームディレクトリを管理する

  2. Stratisを使用したLinuxでのローカルストレージの構成

  3. Linuxでローカルディレクトリとリモートディレクトリを同期する方法

  1. Linux – SuidはLinuxのディレクトリに影響を与えませんか?

  2. Linuxでいくつかのディレクトリに移動します

  3. ローカル エディターを使用したリモート編集 (Linux)

  1. Ubuntu20.04でLsyncdを使用してディレクトリを同期する方法

  2. リモート Linux からローカル Windows への scp (ローカル パスにスペースを含む)

  3. ディレクトリ間の違いを比較する方法 (linux)