はじめに
rsync コマンド は、Linux でファイルやディレクトリを同期・転送するための最も強力で汎用性の高いツールの 1 つです。データのバックアップ、ファイルのミラーリング、システム間(ローカルまたはリモート)でのデータ転送のいずれの場合でも、rsync は効率的なファイル管理に欠かせないユーティリティです。
このガイドでは、rsync の基礎、構文、一般的な使用例、そしてその機能を最大限に活用するためのヒントを解説します。
rsync とは?
Rsync(Remote Sync)は、Linux のコマンドラインユーティリティで、次の目的のために設計されています:
- 効率的なファイル転送:デルタエンコーディングを使用し、ファイルの変更された部分のみを転送します。
- バックアップと同期:バックアップの維持やディレクトリのミラーリングに最適です。
- ローカル転送とリモート転送:SSH 経由でシームレスに動作し、安全なリモート操作を実現します。
rsync の使い方
基本構文
rsync の一般的な構文は次のとおりです:
rsync [options] source destination
使用例
1. ローカルディレクトリをリモートサーバーにコピーする
rsync -av /local/dir/ user@remote:/remote/dir/
使用するオプション:
-a:アーカイブモード(シンボリックリンク、パーミッション、タイムスタンプなどを保持します)。-v:転送中の詳細情報を示す冗長な出力。
2. リモートサーバーからローカルにファイルを同期する
rsync -azP user@remote:/remote/dir/ /local/dir/
使用するオプション:
-z:転送速度を上げるため、転送中にファイルデータを圧縮します。-P:転送中の進捗を表示し、中断された転送の再開を可能にします。
3. 特定のファイル種別を除外しながらファイルをバックアップする
rsync -av --exclude='*.tmp' /source/dir/ /backup/dir/
--exclude オプションは、指定したパターンに一致するファイルをスキップします(例: .tmp ファイル)。
4. 送信元に存在しなくなったファイルを送信先から削除する
rsync -av --delete /source/dir/ /destination/dir/
警告:--delete を使用する際は、誤ってデータを失わないよう、必ずパスを再確認してください。
rsync を使うメリット
1. 効率的な転送
rsync はファイルの変更された部分のみを転送するため、帯域幅と時間を節約できます。
2. 汎用性
ローカル転送とリモート転送をシームレスに処理するため、バックアップ、移行、同期に最適です。
3. 信頼性
再開可能なファイル転送に対応しており、中断された操作を最初からやり直さずに再開できます。
4. セキュリティ
SSH と統合されており、リモート接続経由で安全なデータ転送を行えます。
5. カスタマイズ性
ファイルの除外、帯域幅制限の設定など、豊富なオプションを提供します。
6. クロスプラットフォーム対応
Linux、Unix、さらには Windows(Cygwin や WSL などのツール経由)でも動作します。
おまけのヒント:ドライランモードを使いましょう!
破壊的な可能性のある rsync コマンド(例: --delete付き)を実行する前に、 --dry-run フラグを使って操作をシミュレーションしてください:
rsync -av --delete --dry-run /source/dir/ /destination/dir/
これにより、変更を適用する前に内容を確認でき、誤ってデータを失うのを防げます。
参考資料
詳しくは、公式ドキュメントをご覧ください: