2014/06/18

rsync 使い方

rsync -av /foo/from_dir/ /bar/to_dir

-a を指定することで、rsync はアーカイブモードで動作するようになる。
アーカイブモードはmysqldumpのoptみたいな物、色んなオプションの纏めるである。

    ディレクトリを再帰的にコピーする (-r)
    シンボリックリンクを、そのままシンボリックリンクとしてコピーする (-l)
    パーミッションをそのままコピーする (-p)
    タイムスタンプをそのままコピーする (-t)
    グループをそのままコピーする (-g)
    ファイルオーナー (所有者) をそのままコピーする (-o)
    デバイスファイルやを特殊ファイルを、そのままコピーする (-D)

rsync -av /foo/from_dir /bar/to_dir
==>to_dirの下でfrom_dirを作成する

rsync -av /foo/from_dir/ /bar/to_dir
==>to_dirの下で、from_dirを作成しない、中身だけコピーする

・remoteへのコピー
rsync -av /foo/from_dir/ user@example.com:to_dir/

・-q または --quiet … 転送情報を表示しない。
--stats : 転送後に、より詳細なファイル数・転送サイズを表示する。
--list-only
コピーや転送は行わず、転送対象となるファイルの表示のみ行う
-W または --whole-file
rsync アルゴリズムを使用せず、ファイル全体を転送する
--existing または --ignore-non-existing
転送先に存在しないファイルは転送対象外とする (新規ファイルの作成を行わない)
--ignore-existing
転送先に存在しているファイルは、転送対象外とする (新規ファイルの作成のみ行う)
--remove-source-files
転送に成功したファイルは転送元から削除する (ただしディレクトリは残す)
--delete
delete extraneous files from destination dirs
--max-size=SIZE
転送対象とするファイルサイズ上限を指定する
--min-size=SIZE
転送対象とするファイルサイズ下限を指定する。SIZE の例を以下に示す。
--max-size=2K (=2*1024)
--max-size=2M (=2*1024*1024)
--max-size=2G (=2*1024*1024*1024)
-f, --filter=RULE
add a file-filtering RULE
--exclude=PATTERN
指定したパターンにマッチするファイルを転送対象外とする。
例: --exclude="*.txt"
→ 拡張子 txt のファイルは転送対象外とする