nDiki
2009年2月13日 (金)
■ ファイルを変更すると自動的に rsync してくれる lsyncd

ファイルを変更すると「何もしなくても」自動的に同期してくれる Dropbox が非常に便利で昨年9月以来ずっと使っている。 「何もしなくても」同期してくれるというのが気にいったので、Linux 上でもいいソフトウェアがないか探してみた。 で見つけたのが lsyncd (というか1年以上前に1度チェックした形跡があるが記憶にない)。
inotify でファイルの変更を検出して自動的に rsync を実行してくれるというもの。 裏で rsync を呼び出すので同期先は rsync できる場所ならローカルでもリモートでも OK。
例えば lsyncd /tmp/a/ /tmp/b/ とすると、/tmp/a/ でファイルの作成・変更・削除を行うと /tmp/b/ にもすぐ反映される。 これはいい。 一般ユーザでも実行可能。
Dropbox から USB メモリに常に同期しておくのとかに使えそうだな。
なおデフォルトでは
-lt%r --delete {--exclude-from [FILE]} [SOURCE] [DIRECTORY]
というオプションで rsync が呼び出される (%r は lsyncd 起動時には r、それ以外は d になる)。 ここで --delete が指定されているので注意。 lsyncd.conf.xml ファイルを作成して --conf オプションでそのファイルを指定すれば、rsync の引数を変更できる。 rsync の --delete オプションを外し、また -a オプション相当を指定するならば以下のような設定ファイルを作ればよい。
<lsyncd version="1">
<settings>
<callopts>
<option text="-%rlptgoD"/>
<exclude-file/>
<source/>
<destination/>
</callopts>
</settings>
</lsyncd>
ただしソース側で chmod をしてもイベントを拾わないので、すぐには rsync が実行されず権限が同期先に反映されないことを理解しておく必要がある。 lsyncd ではディレクトリ単位で rsync を実行するので、同じディレクトリでファイルの変更等がおきることで副次的にそのディレクトリの他のファイルの権限変更が同期されることになる (rsync で -p オプションを指定している場合)。
Debian GNU/Linux sid では Debian パッケージになっていないようで、今回はソースからインストールした。
tar zxvf lsyncd-1.26.tar.gz cd lsyncd-1.26 dh_make --createorig fakeroot dpkg-buildpackage sudo dpkg --install ../lsyncd_1.26-1_i386.deb
- Debian GNU/Linux で Dropbox (2008-09-16)
- Dropbox for Linux を Debian 用にビルドしてインストール (2009-11-24)
- 今日のさえずり - ミニパトに男性警官が乗っているとガッカリする (2009-11-26)
- TrueCrypt で USB メモリに Windows と Linux からアクセスできる仮想暗号化ドライブを (2006-12-14)
- OpenOffice.org クロスプラットフォームで同じフォントを (2010-03-24)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザインProcess Time: 0.201637s / load averages: 1.14, 1.02, 0.95
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)


◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox