とりあえず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 |
ファイルサイズのbytes をK やM で出力 |
-v |
--verbose |
コピーしたファイル名やバイト数などの転送情報を出力 |
-z |
--compress |
データ転送時に圧縮 |
--compress-level=NUM |
NUM がゼロでない場合 --compress オプションが暗黙的に指定される |
|
--skip-compress=LIST |
||
-c |
--checksum |
タイムスタンプとファイルサイズではなくチェックサムで差分を確認 |
-u |
--update |
転送先に既にファイルが存在し、転送先のタイムスタンプの方が新しい場合は転送しない |
-n |
--dry-run |
コピーや転送を実際には行わず転送内容のみ出力 |
--delete |
転送元に存在しないファイルは削除 | |
--exclude=PATTERN |
同期から除外 |