読者です 読者をやめる 読者になる 読者になる

CA MOBILE エンジニアブログ

株式会社シーエー・モバイルのエンジニアブログです

Lsyncd でお手軽サーバ間ファイル同期

linux関連

こんにちは。社内ではなんでもよろしく系エンジニアの ono です。
今回は Live Syncing Daemon ( Lsyncd ) を利用したお手軽なサーバ間のファイル同期について解説します。

どういうときに使う?

例えば外部から不定期に FTP で画像ファイルがアップロードされるサーバがあって、
そのファイルを開発サーバや web サーバなどと同期したい場合は、 lsyncd によってどのサーバにも同じファイルが生存している状態にすることができます。
今回は CentOS での利用方法を解説していきます。

プログラムのインストール

xinetd

yum install xinetd

lsyncd

もし rsync がなければインストール   yum install rsync

lsyncd インストール yum install libxml2-devel
yum install lsyncd

今回解説する lsyncd は version 2.1.5 です

lsyncd -version
Version: 2.1.5

設定ファイルの編集

マスターとなるサーバ
/etc/lsyncd.conf

settings {
    logfile = "/var/log/lsyncd/lsyncd.log",
    statusFile = "/var/log/lsyncd/lsyncd-status.log",
    statusInterval = 20
}

sync {
    default.rsync,
    delay = 0,
    source="/home/ono", -- 同期元
    delete=true,  -- rsync --delete するかどうか
    target="#{送り先のサーバ}:/home/ono/", -- 同期先
    rsync = {
      binary="/usr/bin/rsync",
      archive="true",
      compress="true",
    }
}
起動

sudo service lsyncd start

これでマスターとなるサーバの /home/ono が同期したいサーバの /home/ono と同期されるようになりました。
とても簡単ですね。

参考 :

CentOS6.5でlsyncdを動かす - Qiita

Lsyncd(Live Syncing Daemon)で複数サーバをリアルタイム同期する方法! | 株式会社LIG