lsyncdで同じ設定なのに同期フォルダの数が違う場合

lsyncdを使っているシステムで、同じ設定を使っている(同期先ホストはお互いを指定)にも関わらず同期ディレクトリ数が違うという事があり、ちょっと引っかかったので備忘で残しておく。

lsyncdで2台構成の同期を行っていたのだが、/etc/lsyncd.confで定義しているステータスファイル(ここでは/var/log/lsyncd/lsyncd.status)を見ると、なぜかinotifyで監視しているディレクトリの数が違うということがあった。 カーネルパラメータはいじってあってinotifyのwatch上限の問題はクリアしている(そもそもそれなら起動しないはず)し、対象のディレクトリだけファイルも(片道だけ)同期されていないように見える。 なんなんだろうと色々調べていたところ、片方のノードだけディレクトリマウントされていないということが分かった。


時折、どこかのノードで設定ファイルとか編集をしたら、自動的に同期して他のノードでも設定を変えて欲しい時がある。
台数が多ければAnsibleなどで設定ファイルを一括更新するが、2\~3台でそこまでするのもなぁ…というときは、Lsyncdを使って自動的に同期させると良いだろう。

Lsyncdは、inotify(Linuxに用意されている、ファイルの変更を検知する仕組み)で、変更を検知したと同時にrsyncでファイルを同期するデーモンツールだ。
比較的簡単に設定ができ、ファイルの削除や新規追加、変更でも同期を自動的に行ってくれる。もちろん、中身はrsyncなのでssh経由でのリモート同期も...


rsyncといえば、ファイルをバックアップする上でよく利用されるコマンドだ。
それにファイルの更新を認識するカーネルの機能であるinotifyを組み合わせ、ファイルが更新されると同時にバックアップを行う事が出来るのが、今回紹介する『lsyncd』だ。

今回は、CentOS 7にこの『lsyncd』をインストール、実際に使ってみる事にする。
なお、バックアップ先のサーバでは事前にrsyncをデーモンで起動できる環境が必要だが、こちらを参考に構築済とする。

1.『lsyncd』のインストール

まずは、『lsyncd』をインストールする。
コンパイルを行う際に必要となるパッ...