lsyncdでサーバ間ファイルを同期をさせてみた

設定したことなかったので設定してみました。

Azureでロードバランサに2台のサーバの可用性セットをつけてある感じです。

【公式】

http://axkibe.github.io/lsyncd/manual/config/file/

【参考】

http://ikm.hatenablog.jp/entry/2013/05/27/140336

http://iga-ninja.hatenablog.com/entry/2015/02/28/230014

http://qiita.com/ftakao2007/items/41c5c0653892d1454c39

http://server-setting.info/centos/lsyncd-rsync-realtime.html

 

/etc/lsyncd.confに以下のように設定

settingの中身

logfile:ログファイルの場所

statusFile:ステータスを管理するファイルの場所

maxProccesses:lsyncdのプロセス数の上限

statusInterval:同期する間隔

insist:起動時に失敗しても接続を試み続ける

 

syncの中身

default.rsync:デフォルトの同期手段の定義

source:同期元の対象ファイル

target:同期先の対象ファイル

delay:何秒後に同期開始するか

delete=”running”:双方向同期をしている場合に設定が必要。

サーバ1が落ちている間にサーバ2で何かしらファイルを追加したとする。

サーバ1が復旧した際にサーバ1からサーバ2へsyncが走った場合、サーバ2との差分をdeleteとしてしまうことを防ぐためのパラメータ。

init = false:双方向同期をしている場合に設定が必要。

サーバ1が落ちている間にサーバ2で何かしらファイルを削除したとする。

サーバ1が復旧した際にサーバ1からサーバ2へsyncが走った場合、サーバ2との差分を戻してしまうことを防ぐためのパラメータ。

 

targetのweb02はあらかじめ/etc/ssh/ssh_configで設定しておくと楽になるかと思います。

同期元のサーバで以下コマンド

同期先のサーバで以下コマンド

いろんなブログみてると起動の仕方がいろいろあって、めんどくさいなーと思ってたけど、普通にsystemctlコマンド使えるじゃんって感じでした。

あと微妙につまったのが、lsyncd.confで設定したログファイルがないとlsyncが始まらないっぽいこと。

勝手に作ってくれなかったので、とりあえず手動で作ったらうまく動きました。

Loading Facebook Comments ...

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です