FreeBSD/rsync のバックアップ(No.5)


rsync

*1

インストール

# cd /usr/ports/net/rsync
# make install

バージョン

rsync version 2.6.9

書式

rsync オプション [ホスト名:]コピー元ファイル/ディレクトリ名 [ホスト名:]コピー先ファイル/ディレクトリ名

オプション

-vバックアップ中にコピーしているファイル名を表示する
-r指定したディレクトリ以下を再帰的にコピーする
-lシンボリックリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-Hハードリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる
-pパーミッション属性をたもったままコピーする
-o所有者属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-gグループ属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる
-tタイムスタンプをたもったままコピーする
-Dデバイスファイルをたもったままコピーする
-zデータを圧縮して転送する
-u追加されたファイルだけをコピーする
-a上記のオプションで「rlptgoD」を同時に指定する
--existing更新されたファイルだけをコピーし、追加されたファイルは無視する
--deleteコピー元で削除されたファイルは、コピー先でも削除する。-aオプションと同時に指定するとコピー元とコピー先を同期できる
--exclude '**'**に一致するファイルはコピーしない。「*.bak」「*~」など特定のファイルを除外したいときに使う
--statsコピーの結果を表示する。指定しないといっさいのメッセージは表示されない
-e ssh暗号化してファイルを転送する。コピー先としてネットワークでつながった別のホストを指定するときに使う

オプション-e sshを使って、自動でホスト間のバックアップを行うにはSSHの設定が必要です。
FreeBSD/SSHD鍵

・/homeを/work/backupとしてバックアップし、同期させる。

# rsync -av --delete /home /work/backup

・/homeをdynabookホストの/work/backupとしてバックアップし、同期させる。

# rsync -av --delete /home dynabook:/work/backup

デーモンで立ち上げる場合

/etc/inetd.confに追加

# vi /etc/inetd.conf
rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon

/usr/local/etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
syslog facility = local5
uid = root
gid = wheel

[home]
comment      = home data
path         = /home

ログファイル作成

# touch /var/log/rsync.log

実行例

$ rsync -rv rsync://localhost/home /work/home_backup
home            home data

*1 参考にしたページ:http://bio-math10.biology.kyushu-u.ac.jp/~tohya/tips/unibase.html#rsync