2つのサーバー間で、できるだけリアルタイムでファイルを同期する必要があったので、それの設定を備忘録を兼ねて…。
まず受信側の設定。
rsyncdというデーモンを動かします。
xinetd経由で呼び出されるので、まずはこれがインストールされていることが最低条件です。
yumで普通にインストール可能なはずです。
rsyncdはデフォルトで起動しないようになっているので、それを変更します。
/etc/xinetd.d/rsyncを編集します。
service rsync { disable = no flags = IPv4 socket_type = stream wait = no user = root server = /usr/bin/rsync server_args = --daemon log_on_failure += USERID }
disabledをyesからnoにすると起動するようになります。
また、IPv4を使う場合はflagsを変えます。
変更後、xinetdをrestartすればポート873で待ち受けます。
次に、同期するディレクトリの設定です。
/etc/rsyncd.confを編集します。
[Publicdir] path = /var/www/html/public comment = public directory hosts allow = hogehoge.com hosts deny = * read only = no uid = user gid = user
pathが同期するディレクトリ。
hosts allowは接続を受け付けるホスト名。
uidとgidはファイルを読み書きするユーザーのidとそのグループを設定します。
以下は送信側の設定。
lsyncdというデーモンを動かします。
rpmforgeリポジトリから提供されているのでこれもyumで普通にインストール可能です。
(設定によっては–enablerepo=rpmforgeオプションが必要です)
設定は/etc/lsyncd.confを編集します。
settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.stat", } sync{ default.rsync, source="/usr/local/public/", target="senduser@hoge2.com::Publicdir", }
settingsの部分はログファイルとかの設定。
syncの部分が同期に関する設定。
sourceには受信側と同期するディレクトリを指定します。
targetには受信側にログインするユーザーとホスト名、受信側の同期ディレクトリを指定します。
「Publicdir」の部分に、受信側のrsyncd.confの[]で囲んだ部分の名称を指定します。
設定が終わったらlsyncdをserviceコマンドや/etc/init.dの中の起動スクリプトで起動させます。
送信側の対象ディレクトリ内のファイルに変更が発生すると、ほぼリアルタイムで受信側にrsyncでファイルが転送されます。