rsync
ファイル転送コマンド
差分ファイル転送が可能であり、接続断でも途中から再開できる
gzip での圧縮転送可能
Cautions
- シンボリックリンクの貼り直しの可能性
- ファイル所有者する可能性
- .ssh などは除外する
転送スピード早めるには、'ssh -c arcfour' にすると良い
- 暗号化強度は弱まるので内部転送に留める
update
- 同期先のタイムスタンプが新しければ、同期しない
オプション
項目 説明 -a 圧縮モード
-rlptgoDと同じ--bwlimit 転送制限(KByte/s) --delete 同期元にないファイルは、同期先から削除 -e リモートシェル指定(ssh) -h 転送サイズの表示を読みやすくする(MB) -n --dry-run テスト実行転送 -v 転送ファイルなどの詳細表示
動作検証
前提
- test ディレクトリが、/tmp 配下に置かれる
test 配下のファイルのみ転送(./も転送される)
$ rsync -avh test/ root@192.168.0.100:/tmp/
test 配下のファイルのみ転送(./は転送されない)
$ rsync -avh test/* root@192.168.0.100:/tmp/
/tmp/test 配下に、test ディレクトリ作られる
$ rsync -avh test root@192.168.0.100:/tmp/test $ rsync -avh test root@192.168.0.100:/tmp/test/
例
コピーを作る
$ rsync -avz /var/www/example.com/ /home/www/example.com/
コピー元にファイルの削除も反映させる
$ rsync -avz --delete /home/www/example.com/ /var/www/example.com/
SSH 接続にて、ポート、鍵指定したファイル転送
$ rsync -e "ssh -p 2022 -i /path/to/key" -avz /var/log/* root@192.168.0.10:/var/log/