# cd /usr/ports/net/rsync # make install
rsync version 2.6.9
rsync オプション [ホスト名:]コピー元ファイル/ディレクトリ名 [ホスト名:]コピー先ファイル/ディレクトリ名
| -v | バックアップ中にコピーしているファイル名を表示する | 
| -r | 指定したディレクトリ以下を再帰的にコピーする | 
| -l | シンボリックリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる | 
| -p | パーミッション属性をたもったままコピーする | 
| -o | 所有者属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる | 
| -g | グループ属性をたもったままコピーする。指定しないと属性はコピーしたユーザーのものになる | 
| -t | タイムスタンプをたもったままコピーする | 
| -D | デバイスファイルをたもったままコピーする | 
| -z | データを圧縮して転送する | 
| -u | 追加されたファイルだけをコピーする | 
| -a | 上記のオプションで「rlptgoD」を同時に指定する | 
| –existing | 更新されたファイルだけをコピーし、追加されたファイルは無視する | 
| –delete | コピー元で削除されたファイルは、コピー先でも削除する。-aオプションと同時に指定するとコピー元とコピー先を同期できる | 
| –exclude KEY | KEYに一致するファイルはコピーしない。 「*.bak」「*~」など特定のファイルを除外したいときに使う。 空行と、';' または '#' で始まる行は無視されます。 | 
| –exclude FILE | 「–exclude」オプションと似ていますが、代わりに FILE に除外するファイルのリストを記述します。FILE の空行と、';' または '#' で始まる行は無視されます。 | 
| –stats | コピーの結果を表示する。指定しないといっさいのメッセージは表示されない | 
| -e ssh | 暗号化してファイルを転送する。コピー先としてネットワークでつながった別のホストを指定するときに使う | 
| –numeric-ids | ユーザとグループの id 番号を転送して、転送後にマッピング | 
| –force | ディレクトリが空でなくても削除 | 
| –delete-excluded | 受信側にある exclud ファイルも削除 | 
| –inplace | rsync先にファイルが存在する場合上書きする | 
| –sparse, -S | sparseファイルだった場合、sparseファイルとして扱う | 
| –hard-links,-H | ハードリンクはそのままコピーする。指定しないとリンク先の実体がコピーされる | 
オプション-e sshを使って、自動でホスト間のバックアップを行うにはSSHの設定が必要です。
06 sshでパスワードなしにログインするには
・/homeを/work/backupとしてバックアップし、同期させる。
# rsync -av --delete /home /work/backup
・/homeをdynabookホストの/work/backupとしてバックアップし、同期させる。
# rsync -av --delete /home dynabook:/work/backup
# vi /etc/inetd.conf rsync stream tcp nowait root /usr/local/bin/rsync rsyncd --daemon
pid file = /var/run/rsyncd.pid log file = /var/log/rsync.log syslog facility = local5 uid = root gid = wheel auth users=backup secrets file=/usr/local/etc/rsyncd.secrets hosts allow = 192.168.1.0/24 hosts deny = * [all-home] comment = home data path = /home
# cat /usr/local/etc/rsyncd.secrets backup:xxback
# touch /var/log/rsync.log
rsync : 192.168.1. : allow
inetdから起動するのではなく、standaloneで起動した場合は、rsyncd.confにhosts allow = 192.168.1.0/24 のように書いてアクセス制御します。
・ローカルでバックアップをとる場合
$ rsync -rv rsync://localhost/all-home /work/home_backup home home data
・別ホストから、rsyncサーバに接続してバックアップを取る場合
$ rsync -av rsync://userid@host.co.jp/all-home /work/home_backup
・別ホストから、rsyncサーバに接続してバックアップを取る場合
# cat /etc/rsyncd.pass xxback # /usr/local/bin/rsync -auvvz --numeric-ids --password-file=/etc/rsyncd.pass --delete --force --delete-excluded rsync://backup@192.168.1.1/all-home /home --password-file ファイルからパスワードを得る --numeric-ids ユーザとグループの id 番号を転送して、転送後にマッピング。 --force ディレクトリが空でなくても削除
 #!/bin/sh
 case "$1" in
 start)
         # Start daemons.
         echo "Starting up rsyncd."
         /usr/bin/rsync --daemon
 ;;
 
 stop)
         # Stop daemons.
         echo "Shutting down rsyncd."
         /usr/bin/killall rsync
 ;;
 
 *)
 ;;
 
 esac
 
 exit 0
※デーモンで動かしている場合、rsyncd.confを編集後デーモンの再起動は必要ありません。