rsync とは?
異なるホスト間でデータをコピーするためのもう一つの必須ツールがrsync(リモート同期の略)です。scpと似ていますが、rsyncには非常に効率的であるための重要な違いがあります。それは、デモータ転送アルゴリズムを使用し、宛先にある既存のデータをインテリジェントにチェックし、変更されたファイルの部分のみを転送する点です。
例えば、大きなファイル転送が中断された場合、rsyncは最初からやり直すのではなく、ファイルの残りの部分のみを転送してコピーを再開できます。これにより、不安定なネットワーク接続に対して堅牢な選択肢となります。
rsync の主な特徴
rsyncの効率性は、そのスマートな最適化から来ています。転送中にコピーされたデータが破損していないことを確認するために、チェックサムを使用してファイル整合性を検証します。これらの機能は大きな柔軟性を提供し、rsyncを以下に最適なツールにしています。
- ディレクトリの同期(リモートおよびローカル)
- 増分データバックアップの作成
- 大容量データ転送の効率的な処理
一般的な rsync オプション
いくつかのオプションを使用して、rsyncコマンドの動作を変更できます。最も一般的に使用されるものには以下が含まれます。
-v: 詳細出力。転送中のファイルを表示します。-r: 再帰的。ディレクトリ全体をコピーするために必要です。-h: 人間が読みやすい出力。数値をより理解しやすい形式(例:KB、MB)で表示します。-z: 転送中にファイルデータを圧縮します。低速な接続に最適です。-a: アーカイブモード。パーミッション、所有者、タイムスタンプを保持するために、いくつかのオプション(-rlptgoD)を組み合わせた便利なショートカットです。
rsync の使用例
同じホスト上のファイルの同期
ローカルマシン上の 2 つのディレクトリを同期するためにrsyncを使用できます。これはローカルバックアップを作成する場合に役立ちます。
rsync -avh /my/local/directory/one/ /my/local/directory/two/
リモートホストからローカルホストへのファイルの同期
リモートサーバーからローカルマシンにファイルをプルするには、まずリモートソースを指定します。
rsync -avh username@remotehost.com:/remote/directory/ /local/directory/
ローカルホストからリモートホストへのファイルの同期
ローカルマシンからリモートサーバーにファイルをプッシュするには、まずローカルソースを指定します。
rsync -avh /local/directory/ username@remotehost.com:/remote/directory/