実際は -a は -rlptgoD と同じである。各オプションの意味は以下のとおり。 ディレクトリを再帰的にコピーする (-r) シンボリックリンクを、そのままシンボリックリンクとしてコピーする (-l) パーミッションをそのままコピーする (-p) タイムスタンプをそのままコピーする (-t) グループをそのままコピーする (-g) ファイルオーナー (所有者) をそのままコピーする (-o) デバイスファイルやを特殊ファイルを、そのままコピーする (-D) rsyncコマンドの使い方: UNIX/Linuxの部屋
ワイルドカードと範囲指定でファイル名を指定します (例えば、"*.log.[0-9]"のように指定します。正規表現は使用できません)。
http://www41375u.sakura.ne.jp/server/linux_basic/rsyncd_lsyncd.html#22
rsync exclude
--exclude "*.o" は *.o と一致する全てのファイル名を除外します
--exclude "/foo" は基点ディレクトリにある foo というファイルを除外します
--exclude "foo/" は foo という名前のディレクトリを除外します
--exclude "/foo/*/bar" は foo という基点ディレクトリから2レベル下にある bar というファイルを除外します。
--exclude "/foo/**/bar" は foo という基点ディレクトリから2レベルか それ以上下にある bar というファイルを除外します
--include "*/" --include "*.c" --exclude "*" は全てのディレクトリと C ソースファイルを含みます
--include "foo/" --include "foo/bar.c" --exclude "*" は foo/bar.c だけを含みます (foo/ ディレクトリが 含まれなければならないか、"*" によって除外される)http://www.infoscience.co.jp/technical/rsync/rsync.html#exclude
特定ファイルの転送
http://blog.livedoor.jp/kurt0027/archives/51808421.html
foo/bar/baz 以下をサブディレクトリを含め転送したい場合
excludefromというファイルを作って + /foo/ + /foo/bar/ + /foo/bar/baz/*** # all exclude - * rsync -nav --delete --exclude-from=excludefrom src/ dist/
+ /foo/bar/baz/***
は
+ /foo/bar/baz/
+ /foo/bar/baz/**
相当
最近のバージョンでは、 + dir/ + dir/** - * を + dir/*** - * と書ける。INCLUDEパターン(+)じゃないと***は意味がないと思う(たぶん)。ディレクトリを除外すればそれ以下も除外されるので。
地雷だらけのrsyncを理解する。 - こせきの技術日記
+ /foo/bar/baz/*** だけでは駄目
今回はうまくいった。つまりサブディレクトリを指定したい場合は、対象のディレクトリに至るまでの全ての親ディレクトリを--includeで指定する必要があるということだ。
rsync の include 使用方法(include と exclude の整理) | for everyone's smile
bwlimitオプション 帯域 制限
100Mbps --bwlimit=12500
単位がKBPSなので、注意。
簡単に変換表。
100Mbpsなら、12500KBps
10Mbpsなら、1250KBps
1Mbpsなら、125KBps
500kbpsなら、62.5KBps