rsyncはディレクトリの同期をローカルマシン内もしくはリモートマシン間で行うためのコマンドです。なお、名前のよく似た、メモリ内のキャッシュをディスクに強制的に書き出させるsyncコマンドとは関係ありません。
$ rsync -av sourcedir/ destdir/
(or $ rsync --archive --verbose sourcedir/ destdir/)
スラッシュがない ('sourcedir/' ではなく 'sourcedir') 場合はディレクトリそのものがコピーされます。
$ rsync -av sourcedir destdir/
コピー元にないファイルがコピー先にあれば削除されます。完全同期です。
$ rsync -av --delete sourcedir/ destdir/
ログファイルなどを除外して同期したい場合には '--exclude' オプションを利用します。
$ rsync -av --exclude 'log.bk' sourcedir/ destdir/
$ rsync -av sourcedir/ username@example.com:/path/to/destdir/
空ディレクトリを無視 -m
しつつ、特定のファイルのみをコピー
rsync -avm --include='*/' --include '*.txt' --include '*.tar.gz' --exclude '*' vagrant:/data/db .
-e 'ssh -p 12345'
クォーテーションで囲うことで複数ファイルを指定できます。
rsync -av "username@example.com: /tmp/file1.txt /tmp/file2.txt" .
途中で通信が切れた場合に再開できます。-n
で dry-run できます。
rsync -avPzh /tmp/myhugefile.tar.gz remote:/data/
-P
再開可能なように --partial
しつつプログレスを表示 --progress
-z
圧縮-h
人間に見やすい形式で表示