Under-Construction

▲Zaurus Top | ↑Up(設定・システム) | ←Prev(SSH で安全ログイン) | →Next(ディレクトリ構造一覧)


rsync でファイルの同期

(2003/06/28)

出先で編集したのと、家で編集したのが混乱することがある。→rsync で解決。 rsync は、次のようなツールです。

用意するもの

http://www.geocities.co.jp/SiliconValley-Bay/1180/download.html から rsync の ipk をダウンロード。本体メモリへインストール。

上で述べたように、ssh 経由で rsync を実行する手もあるのだが、パスワード の入力やら面倒なので、rsync サーバを立てることにする。

起動設定

/etc/services と /etc/inetd.conf に rsync を登録。 inetd の再起動も忘れずに。

/etc/services
rsync		873/tcp

/etc/inetd.conf
rsync	stream	tcp	nowait	root	/usr/bin/rsync	/usr/bin/rsyncd --daemon
# 6フィールド目は rsync で 7フィールド目は rsyncd である。
# ハマッたので老婆心ならが注意。

/etc/rsyncd.conf

rsync をサーバモードで実行するときの設定ファイル。 Samba の設定ファイルと書式が非常に似ている。

[home_zaurus]
path = /home/zaurus   ; ユーザ=zaurus のホームディレクトリ
use chroot = no       ; デフォルトは chroot するので、 .. が読めなかったり
uid = zaurus          ; uid を変更しておかなければ、読めないファイルがある。
hosts allow = 192.168.1.0/24  ; アクセス制限。デフォルトは全許可なので必須。
read only = no        ; ローカル→zaurus に書き込む時は必要(default = yes)
[mnt_card]
path = /mnt/card
use chroot = no
uid = zaurus
hosts allow = 192.168.1.0/24
read only = no

一発同期スクリプト

テスト動作をさせてみて OK だったらスクリプトを書く。テストには、 --dry-run オプションが役に立つだろう。

ただし、削除されたファイルの同期については、 どう処理すればよいかわからなかったので、 --delete オプションはついていない。

これも、ハマりポイントだが、SRC, DST の末尾の / については、 マニュアルを良く読もう。

#!/bin/sh
# zaurus -> local
rsync -avz --update --exclude '*~' zaurus::home_zaurus/Documents/ /home/nkon2/zaurus/zaurus_home/Documents/
rsync -avz --update --exclude '*~' zaurus::mnt_card/Documents/  /home/nkon2/zaurus/mnt_card/Documents/
# local -> zaurus
rsync -avz --update --exclude '*~' /home/nkon2/zaurus/zaurus_home/ zaurus::home_zaurus/
rsync -avz --update --exclude '*~' /home/nkon2/zaurus/mnt_card/    zaurus::mnt_card/

rsync を使うと、zaurus 側で samba を起動して、PC 側で root になって、 マウントして、更新したファイルを思い出してやり取りする、 っていう手順を踏まなくていいので便利♪


▲Zaurus Top | ↑Up(設定・システム) | ←Prev(SSH で安全ログイン) | →Next(ディレクトリ構造一覧)


近藤靖浩