(水)ひっさびさに同期の設定したら全然できなくてかなり参ったので、もう基本からやり直しみたいな感じでの備忘録です。なんだかんだでCentOS7にする人もいないし専用サーバーもCentOS6だし今回もCentOS6でやりました。これ初心者がやろうとしたら意味わからないんじゃないかなと思いつつも、自分でも相当に忘れてしまっていたのでざっと基本的な流れをおさらいします。説明も何もないとは思いつつも複数のWEBサーバー何かの同期を取る際には結局リアルタイムでミラーリングすることになります。ロードバランサーによる振り分けなどでWEBサーバーの冗長化を伴うとずべてのWEBサーバーの内容は全く同じでなければなりません。やり方としてはすべてのWEBサーバーにNASなんかをマウントしちゃって...というの1番楽だったりするのですが、予算的にそれも合わない(し、NAS入れるほどコンテンツがないよって話もあって)などなど、どうにかこうにかして同期をはかる際にはlsyncd+rsyncdということになります。rsyncの差分同期はすでに非常に優秀で便利で爆速で誰でも使っているものになりますが、リアルタイムで同期することができないものなのです。cronで1分おきに叩くとかダサい感じになります。[スレイブ側]ということになります。設定例は以下のような感じです。slaveちなみになんですが、スレーブ側のファイルをいろいろやるとどうなるんですか?ということがあると思うのですが、かなりおかしなことになるし考えるのが面倒なので「触らない」ということにしておいてください。(すごくいろいろ考えたい人はGoogleさんへ)CentOSのバージョンを確認http://wiki.centos.org/AdditionalResources/Repositories/RPMForgelsyncdのインストールは標準のyumで出来ないので、RPMForgeリポジトリから落としてきます。RPMForgeをリポジトリをインストールしておきます。リポジトリの追加が必要なのでOSのバージョンを確認します。(Final)続いてCPUのビット数を確認します。-ix86_6464bitの場合はこれ。32bitの場合はi386みたいな感じで出てきます。RPMパッケージのインストールこの辺りの情報からRPMのパッケージのある場所を探します。本家の公式サイトにURLが載っているので、探してみてください。私の場合は本家サイトに記載されているように、http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpmとなります。-ivhを使うっぽいです。RPMパッケージのバージョン確認rpmforge-release-0.5.3-1.el6.rf.x86_64がおちてきたっぽい。リポジトリの確認ここまでくればOK。RPMパッケージがインストールされた際に作成されたファイルの確認をしてみる。rsync」、スレイブ側には「rsync」を設定します。一瞬戸惑うのがlsync(d)とrsync(なし)です。mysqlとmsqldとかデーモンになると語尾にdがついたりしますが、lsyncにはdがあってrsyncにはないというのが正しいようです。rsyncこれでインストールは完了。(rsyncはデフォルトですでにインストールされている筈です。一応書いておきました。[マスター側]lsyncd.confを設定する不親切なことに/etc/lsyncというようなものは作られていないのです。/etc/lsyncd/lsyncd.confというようなことをますはじめにやっておきます。それから以下のように設定しましょう。}}ちょこっと解説しておくと、logとかstatusは適当に設定して、syncという項目の中で、同期元ディレクトリ(source)と同期先(target)を設定しておきます。同期先のtargetには::以降にsyncとありますが、ここは何でもいいです。いうのもここはrsyncdのモジュール名ということでrsyncd側に設定する文字列と同じであればよいといった感じです。rsyncの中にはarchiveとlinksとupdateとverboseを設定しておけばだいたいいいんじゃないかといったところです。英語ですがオプションなんかをかなり詳しく解説してくれている人もおります。除外するファイルやディレクトリGitでもrsyncでもそうですが完全同期っていうのはなかなかなくて同期の除外をするファイルやディレクトリってのが必ずあります。以下のようにlsyncd.confのsync内にsourceやtargetと並べて設定します。.....}sync_exclude_listファイルの中身なのですが、sourceで設定したパス以下のパスを書くことになるのでご注意です。(基本rsyncのexcludeファイルの書き方と同じですね。6この段階で一応lsyncdは起動できるようになっています。onlsyncdを起動。(その他の諸々設定をしてないので、ここでは起動しないですね。後で起動してください。[スレイブ側]スレイブ側の設定は、最初の図に示した通り、xinetdの設定とrsyncの設定になります。/etc/xinetd.d/rsyncuserはrootじゃない方がいいかもしれないんですが、rootでも動くのでこれでいいです。そもそもこのconfigファイルはxinetdで/usr/bin/rsyncを叩いてますよっていう意味の設定ファイルなので、それが満たされていれば充分といった内容になっています。USERID}で当然自動起動設定もしておいて、起動、というところです。(起動は後の方がいいか。startrsyncd.confの設定このファイルはスレーブ側のrsyncdの設定をします。(xinetdに叩かれるものになります。)ログとかユーザーとかそこら辺りは適当でOKということで、肝は[sync]です。これがリアルタイムで同期をする際のモジュールみたいなものになります。lsyncで設定したtargetの部分がここになります。この[sync]の中身が実行されます。同期先のディレクトリ、許可するホストなどなど設定します。その他、portが873っていうのと、hostをallowしておくことぐらいでしょうか。その他はコピペで大丈夫そうです。falseここまでできたら、だいたい完成です。xinetdを起動してrsyncdを動かせるようにしておきます。(スレイブ側)が起動します。いろんなエラーが出て困った場合は、最低限の設定にしてみてください。