Edited at

rsyncオプション

More than 3 years have passed since last update.


とりあえずrsync


リモートサーバーからローカルサーバーにコピー


対象ファイルの確認

rsync -ahvn username@hostname:/var/www/html/* /var/www/html/ --max-size=10M

-a を指定することでなるべくコピー元のファイルと同一条件でコピーする。

-h でファイルサイズの視認性をよくする。

-v で詳細を出力する。

-n または --dry-run で対象ファイルを確認する。

--max-size で転送対象のファイルサイズの上限を指定できる。


ファイルの転送状況の表示

rsync -ahv --progress username@hostname:/var/www/html/* /var/www/html/

html/huge/file.zip

37.36M 1% 8.77MB/s 0:03:39

--progress を指定するとファイル単位で転送状況が表示される。


rsync で ssh のポートを指定する方法

rsync -e "ssh -p 22222"

または

rsync --rsh="ssh -p 22222"


rsyncのオプション

オプション
別名
意味

-a
--archive

-rlptgoD と同じ

-r
--recursive
指定ディレクトリ配下をすべて対象とする

-l
--links
シンボリックリンクをそのままシンボリックリンクとしてコピー

-p
--perms
パーミッションをそのままコピー

-t
--times
タイムスタンプをそのままコピー

-g
--group
グループをそのままコピー

-o
--owner
ファイル所有者をそのままコピー (root のみ有効)

-D

--devices --specials と同じ

--devices
ブロックデバイスをコピー (root のみ有効)

--specials
名前付きパイプや FIFO などの特殊ファイルをコピー

-H
--hard-links
ハードリンクをそのまま反映

-h
--human-readable
ファイルサイズのbytesKMで出力

-v
--verbose
コピーしたファイル名やバイト数などの転送情報を出力

-z
--compress
データ転送時に圧縮

--compress-level=NUM

NUMがゼロでない場合 --compress オプションが暗黙的に指定される

--skip-compress=LIST

-c
--checksum
タイムスタンプとファイルサイズではなくチェックサムで差分を確認

-u
--update
転送先に既にファイルが存在し、転送先のタイムスタンプの方が新しい場合は転送しない

-n
--dry-run
コピーや転送を実際には行わず転送内容のみ出力

--delete
転送元に存在しないファイルは削除

--exclude=PATTERN
同期から除外