rsync + inotify = lsyncd 4
ストーリー by mhatta
日々のバックアップに手頃かな 部門より
日々のバックアップに手頃かな 部門より
yosshy 曰く、
freshmeat を眺めていたら、lsyncd というプログラムがアナウンスされていました。 Linux の inotify API を利用して、ローカルの特定ディレクトリ配下の変更をフックし、rsync でリモートサーバにリアルタイムにミラーリングするツールです。DRDB はブロックデバイス単位でミラーリングしますが、こちらはファイル単位となるので、こちらの方が便利なケースもあるでしょう。 まだまだ出来たばかりのツールのようですが、今後が楽しみなプロジェクトです。
複数の更新が合った場合 (スコア:4, 興味深い)
更新のイベントが落ち着いた(アイドル)時間で、rsyncの起動なのかな…と?
個別にrsyncを起動することはないと思うけど、イベント毎に反応してたら、大量のファイルコピーで大変な思いをしそう。
#rsync の 更新チェックのタイミングにも依存しそうだし。
概略では、どんな動きになるのか読み取れなかったので、時間のあるときに試してみようかな~。
つい先日、ファイルシステムの一部の更新を検出してミラーする処理を書いたばっかりなので、lsyncdと比較できてヨサゲであればlsyncdで置き換えるかも(検証が結構かかりそうだけど)。
小物が多いときには便利かも (スコア:2, 興味深い)
細かなファイルがぽろぽろと出来るようなシステムの場合には、
転送量が小さいので便利かな。ファイルサーバとか。
ミッションクリティカルな用途には難しいかもしれないけれど、
お手軽リモートミラーシステムとしては使えるかも。
あとはマルチプラットフォームになっているとうれしいなあ。
Re:小物が多いときには便利かも (スコア:5, 参考になる)
Windowsでもファイル更新を通知するAPIがあり、.NET FrameworkでもFileSystemWatcherクラスがありますね。
http://msdn2.microsoft.com/ja-jp/library/system.io.filesystemwatcher(V... [microsoft.com]
該当API用いたバックアップソフトはいくつかあるようです。
マルチプラットフォーム化は無理ではないかも。
typo (スコア:1)
ですよ。