1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| // 基本 $ rsync -avz /path/from/ /path/to/
-z, --compress 転送時に gzip 圧縮を使用する。 -v, --verbose コピーするファイル名を標準出力する。 -a, --archive -rlptgoD と同義。(--recursive --links --perms --times --group --owner --devices) -r, --recursive ディレクトリを再帰的にコピーする。このオプションを指定していないと、rsync はディレクトリを全くコピーしない。 -l, --links シンボリックリンクを DEST で作り直す。 -p, --perms DEST のパーミッションを SOURCE と同じにする。 -t, --times ファイルの転送時に、修正時間情報もリモートへ転送する。 -g, --group DEST の所有グループを SOURCE と同じにする。スーパーユーザで実行しないと所有グループを変更できない。 グループ ID (GID) を使う場合は --numeric-ids オプションを追加する。 -o, --owner DEST の所有者を SOURCE と同じにする。スーパーユーザで実行しないと所有者を変更できない。 ユーザ ID (UID) を使う場合は --numeric-ids オプションを追加する。 -D デバイスファイルとスペシャルファイルを維持する。 --devices --specials と同義。
|
dru-run(-n)
1
| $ rsync -avz -n /path/from/ /path/to/
|
fromに無いファイルを削除して完全同期(–delete)
1
| $ rsync -avz --delete /path/from/ /path/to/
|
一部のファイルを除外したりする(–exclude, –include)
左から順に判定
1
| $ rsync -avz --exclude="*.csv" --exclude="*.json" --include="*" /path/from/ /path/to/
|
–exclude, –includeを外部ファイルから(–exclude-from, –include-from)
1
| $ rsync -avz --exclude-from=exclude.txt --include-from=include.txt /path/from/ /path/to/
|
別途sshコマンド指定が必要な場合の例
基本的には~/.ssh/config側で解決するのがいいです
1
| $ rsync -avz -e "ssh -p [ポート] -i [秘密鍵]" /path/from/ [SSHユーザ]@[SSHホスト]:/path/to/
|
rsyncの「/tmpに一時保存してからコピー」する動作を「直接上書きコピー」するようにする(–inplace)
大きなファイルをrsyncする際の処理時間短縮などに有効
1
| $ rsync -avz --inplace /path/from/ /path/to/
|
rsyncコマンドに帯域制限をかける(–bwlimit=[KB/sec])
1
| $ rsync -avz --bwlimit=5120 /path/from/ /path/to/
|