Linux の rsync コマンドをマスターする:完全ガイド

はじめに

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/

これにより、変更を適用する前に内容を確認でき、誤ってデータを失うのを防げます。


参考資料

詳しくは、公式ドキュメントをご覧ください:

コメントを残す