プロが教えるわが家の防犯対策術!

lsync+rsyncミラーリングで除外ディレクトリの設定のしかた

centOS 5.5 で自宅サーバを立ち上げLinuxを勉強中です。

そこでlsyncdとrsyncを使い、リアルタイムに「サーバー#1」と「サーバー#2」でミラーリングを行うとしています。


ミラー元の「サーバー#1」に

# vi /etc/lsyncd.conf.xml

<settings>
 <!--exclude-from filename="/tmp/exclude"/-->
<logfile filename="/var/log/lsyncd.log"/>
<binary filename="/usr/bin/rsync"/>
<callopts>
<option text="-lt%r"/>
<option text="--delete"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>

<directory>
<source path="/var/www/AAA/"/>
<target path="192.168.1.200::backup"/>
</directory>
</lsyncd>


ミラー先の「サーバー#2」に

# vi /etc/rsyncd.conf
log file = /var/log/rsyncd.log
uid = nobody
gid = nobody

[backup]
path = /home/backup/
hosts allow = 192.168.1.0/24
read only = false

と設定し、
ミラー元「サーバー#1」の /var/www/AAA/ はミラー先「サーバー#2」とデータの同期がとれています。

そこで、AAAディレクトリ内のXXXとYYYのディレクトリを除外してミラーリングを行いたいと思いますが、どのように設定したらよろしいでしょうか。



#################################

excludeが良くわかりません。
また「EXCLUDE パターン」http://www.infoscience.co.jp/technical/rsync/rsy … に書かれている 除外したいディレクトリはフルパスではなく、基点ディレクトリからのパスを書くとありますが、

/var/www/AAA/XXX はどのように設定すればいいのでしょうか。

#################################

よろしくお願いします。

A 回答 (1件)

あまり細かく試していませんが、以下で動作することを確認しました。



例:
 サーバー#1側の「/xxx/xxx/aaa/bbb/」内のファイルを除外したい場合

サーバー#2側のrsyncdの設定で、[backup] 内の一番下に exclude = aaa/bbb を
指定して試した所、サーバー#1側の/xxx/xxx/aaa/bbb/*** のファイルが除外されることを
確認しました。

rsync はあまり使用したことがないため、exclude = aaa/bbb の指定あたりは
細かく試して頂いた方がいいかと思います。

lsyncdでも恐らく何らかの設定できるのではないかと思いますが、やり方?が
悪いのか、うまくできませんでした。

上記の設定を64bit環境の lsyncd 1.33 を使用して試した所、サーバー#1の
lsyncdが落ちる現象が確認しましたが、最近リリースされた1.34を使用した所、
プロセスが落ちなくなりました。
※1.33->1.34の修正内容として、fix: logging segfault on 64bit systems と
 記載されています。
 そのため、64bit環境の場合は、最新のバージョンを使用された方がいいのでは
 ないかと思います。

lsyncdが上記以外の理由で止まることもあるようですので、lsyncdの設定に
<stubborn/>の指定を追加した方がいいかもしれません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!