Navigation : Top / rsync

rsync

機能

  • リモートファイルのコピー
  • rsync は rcp を非常に強力にしたようなもの
  • ディレクトリーの同期に使えます.

書式

使用例

  • /remoteを/localにコピー..*~ファイルは除く
    rsync -avuzHl --exclude '*~' --delete  /remote  /local
  • sshでネットワーク後しにrsync.xxx.comの/remoteをlocalにコピー
    rsync -av xxx.com:/remote /local
  • SSHで同期+あたらしいファイルだけ
    rsync -avuz -e ssh xxx.com:/remote /local/
  • SSHで同期+あたらしいファイルだけ+状況を表示
    rsync -avuz --progress --stats -e ssh xxx.com:/remote /local
  • SSHで完全同期(ホストにないファイル削除)+あたらしいファイルだけ+状況を表示
    rsync -avuz --delete --progress --stats -e ssh xxx.com:/remote /local

オプション

  • -e ssh
    • sshを使って転送
  • -a archive
    • ファイルについての情報を保つ
  • -r --recursive
    • 再帰的にコピー
  • -u update
    • より新しければ更新しない
  • -v verbose
    • 表示
  • -z compress
    • ファイルを圧縮
  • -b backup
    • 古いファイルは ~ の付いた名前になる
  • -l links
    • symlinkをsymlinkとして残す
  • -H lard-links
    • hardlinkをそのまま残す
  • --delete
    • コピー元にファイルを削除:完全同期
  • --exclude '*~'
    • 同期から除外
  • --progress
    • 転送(同期)中ファイルの転送速度を表示する。
  • --stats
    • 転送(同期)完了後に、統計情報を表示する。
  • --partial
    • 同期途中のファイルを残す。デフォルトでは、同期途中に同期できなくなったファイルは削除される。
  • -h, --human-readable
    • progress や --stats で表示される数値を、わかりやすい単位に丸める。

注意事項

コピー元のディレクトリ名を「dir」と指定するか、「dir/」とスラッシュ(/)を追加するかで挙動が変わる.

  • dirとスラッシュ無しで指定
    • dirディレクトリの中身と,そのディレクトリ自体がコピーされる.
  • dir/とスラッシュ有りで指定 ーー dirディレクトリの中身はコピーされるが,ディレクトリはコピーされない.
    1) rsync -av ~/dir  /backup/
         dirディレクトリも含めてコピーしたい場合:「/」なし
    2) rsync -av ~/dir/ /backup/
         dirディレクトリ以下のツリーをコピーしたい場合:「/」あり
    コピー先の指定ではスラッシュを考慮する必要はない.

参考