rsyncとlsyncdでリアルタイムにディレクトリを同期する

2017/03/11

差分を算出してファイルやディレクトリを同期してくれるrsyncと、ローカルファイルへの変更を監視してくれるlsyncdを組み合わせることでリアルタイムにディレクトリを同期する。
lsyncdのversionは2.1.4を利用する。

lysncdとrsyncを連動する方法は二つある。
一つは、SSHを通してrsync同士が通信する方法で、もう一つがバックアップ先でrsyncデーモンを動かす方法になる。
rsync をデーモンモードで動作させることで、rsyncプロトコル(rsync://)による同期が可能になり、SSHを利用する場合より、暗号化によるオーバヘッドがなく高速で同期することができる。

ここから、設定方法
------------------------------------
・rsync over SSH + lsyncd
1. rootでパスワードなしの公開鍵でログインできるようにしておく。(参考

2. lsyncdの設定ファイルを作成する。

syncのtargetは「IPアドレス」:「ディレクトリ名」。 rsyncオプションにはrsyncコマンドで指定したいものと同じオプションを記載する。
ファイルを更新してからlsyncdがrsyncを呼び出してくれるまでの時間差をdelayで指定する。デフォルトは15秒もあるので、リアルタイム性をできるだけ追求するために1等小さい値を入れておく。

------------------------------------
・rsyncd + lsyncd
1. rsyncdの設定ファイルを作成する。

2. パスワードを利用する場合は、secrets fileにパスワードを記載したファイルを指定する。(パーミッションは600)

3. 設定ファイルの記載が終わったら、xinetdにrsyncを登録して、xinetd経由でクライアントにアクセスしてもらう。
※/etc/rc.dにおくrsyncの起動スクリプトは不要で、/etc/xinetd.dに起動設定ファイルをおく。

4. rsyncdのポートを開放する。

5. 自動起動

6. 確認

7. lsyncdの設定ファイルを作成する。

syncのtargetは「IPアドレス」::「rsyncd.confで設定したパス名」。
rsyncオプションにはrsyncコマンドで指定したいものと同じオプションを記載する。
ファイルを更新してからlsyncdがrsyncを呼び出してくれるまでの時間差をdelayで指定する。デフォルトは15秒もあるので、リアルタイム性をできるだけ追求するために1等小さい値を入れておく。
------------------------------------

lysncdとrsyncの連動方法で設定ファイルの記述が異なったが、最後のlsyncdの操作自体は共通。

・lsyncd
1. 自動起動設定

2. 起動・終了・再起動

------------------------------------

※注意事項
lsyncdがデフォルトで監視対象にしてくれるファイル数は8192に制限されている。これ以上のファイル数を監視対象にしたい場合は、inotify のカーネルパラメーターを増やす必要がある。

sysctl.confに設定を記述した後は、有効にするためにsysctl -p コマンドを実行する。

-Linux
-