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でファイルが転送されます。