rsync コマンドは、ファイルやディレクトリを 差分転送 により効率的にコピー・同期できるツールです。
ローカル間のコピーだけでなく、SSH を利用してリモートサーバとの同期も可能で、バックアップやデプロイ作業に広く使われます。
構文(Syntax)
rsync [オプション] [SOURCE] [DEST]
rsync [オプション] [USER@]HOST:SRC [DEST]
rsync [オプション] [SOURCE] [USER@]HOST:DEST
主なオプション一覧
| オプション | 説明 | 使用例 |
|---|---|---|
-a | アーカイブモード(再帰コピー・属性保持) | rsync -a src/ dest/ |
-v | 詳細情報を表示 | rsync -av src/ dest/ |
-z | データを圧縮して転送 | rsync -avz src/ user@host:/backup/ |
-P | 進行状況を表示し、中断時に再開可能 | rsync -avP file.iso user@host:/tmp/ |
--delete | 転送元にないファイルを削除(同期用) | rsync -av --delete src/ dest/ |
-e "ssh -p PORT" | SSH のポートを指定 | rsync -av -e "ssh -p 2222" src/ user@host:/backup/ |
--exclude=PATTERN | 除外するファイルやディレクトリを指定 | rsync -av --exclude '*.log' src/ dest/ |
--include=PATTERN | 特定のファイルを含める | rsync -av --include '*.txt' src/ dest/ |
--dry-run | 実際にコピーせずシミュレーション | rsync -av --dry-run src/ dest/ |
実行例
ローカル間でディレクトリをコピー
rsync -av project/ backup/
出力例:
sending incremental file list
file1.txt
file2.txt
sent 1,024 bytes received 512 bytes 3,072.00 bytes/sec
total size is 2,048 speedup is 1.50
リモートサーバへコピー(SSH使用)
rsync -avz project/ user@example.com:/var/www/html/
リモートからローカルへコピー
rsync -avz user@example.com:/var/log/ ./logs/
差分コピー(途中で中断しても再開可能)
rsync -avP bigfile.iso user@example.com:/tmp/
除外ルールを指定してコピー
rsync -av --exclude '*.log' project/ backup/
完全同期(不要なファイルを削除)
rsync -av --delete src/ dest/
転送内容をシミュレーション(dry-run)
rsync -av --dry-run src/ dest/
出力例:
sending incremental file list
file1.txt
file2.txt
sent 200 bytes received 50 bytes 500.00 bytes/sec
total size is 1024 speedup is 3.20
エラー例(認証失敗)
rsync -av user@wronghost:/data/ ./backup/
出力例:
ssh: connect to host wronghost port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far)
関連コマンド
scp: シンプルなファイルコピー(差分機能なし)sftp: SSH を利用した対話的なファイル転送tar: アーカイブ作成や圧縮cp: ローカルでの単純コピー
備考
rsyncは 差分コピー を行うため、2回目以降の転送は非常に高速。- SSH を利用するのが一般的で、安全かつ便利にリモートサーバと同期可能。
- バックアップ用途で
--deleteを付ける際は、誤削除に注意し--dry-runで確認するのが推奨。 - Windows 環境では WSL や Cygwin などを通じて利用可能。
参考
- manページ: man7.org rsync(1)
- Rsync公式: https://rsync.samba.org/

コメント