BLOGTIMES
2009/03/02

lsyncd ディレクトリのリアルタイムミラーリング

  linux  sh 
このエントリーをはてなブックマークに追加

FTPでポツポツと転送されてくるファイルをWindowsのファイルサーバーになるべくリアルタイムにコピーする必要があったのですが、ファイルシステムのリアルタイムミラーリングというとHA用の大艦巨砲なものが多いので、もうちょっとお手軽な感じのソフトはないかなと思って探してみたところ、lsyncdというソフトを見つけました。

lsyncd - Google Code

Lsyncd uses rsync to synchronize local directories with a remote machine running rsyncd. Lsyncd watches multiple directories trees through inotify. The first step after adding the watches is to rsync all directories with the remote host, and then sync single file by collecting the inotify events. So lsyncd is a light-weight live mirror solution that should be easy to install and use while blending well with your system. See lsyncd --help for detailed command line options.

lsyncdはinotifyを使ってディレクトリを監視し、ディレクトリに変化が合った場合にはrsyncを使ってディレクトリを同期するという動作を行うようです。ファイル転送があると、いちいちrsyncするのでちょっと重いかもしれませんが、ファイルの転送はそんなに頻度が高いわけでもないし、そこまでの信頼性も必要ないので今回はこれで行くことにしました。


インストール自体は下記のコマンドで特に問題なくインストールできました。

./configure make make install

アーカイブにはinitスクリプトが入っていないのでそのあたりは「リアルタイムミラーリングツール導入(lsyncd rsyncd) - Fedoraで自宅サーバー構築」を参考にしました。設定についてはアーカイブに入っているlsyncd.conf.xmlを/etc/lsyncd.conf.xmlにコピーしたのでその部分については書き換えています。

後は/etc/init.d/lsyncd startでデーモンを起動して、ファイルを送信元に放り込んでみると、リアルタイムに送信先にファイルが同期されます。

設定のサンプルなど

/etc/lsyncd.conf.xml

<lsyncd version="1"> <settings> <callopts> <option text="-lt%r" /> <option text="--delete" /> <exclude-file /> <source /> <destination /> </callopts> </settings> <directory> <source path="/path/to/src/" /> <target path="/path/to/dest" /> </directory> </lsyncd>

/etc/init.d/lsyncd

#!/bin/bash # # lsyncd # # chkconfig: - 99 20 # description: lsyncd auto start script start() { /usr/local/bin/lsyncd } stop() { /bin/kill -9 `/sbin/pidof lsyncd` until [ -z $(/sbin/pidof lsyncd) ]; do :; done } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) pid=`pidof lsyncd` if [ $? -eq 0 ]; then echo "lsyncd (pid $pid) is running..." else echo "lsyncd is not running" fi ;; *) echo "Usage: lsyncd {start|stop|restart|status}" exit 1 esac exit $?

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2944
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン