地方在住IT系ニート

bkds

rsyncコマンドのメモ

はじめに

rsyncは、リモート、ローカルのシステム間でファイルを同期するためのツールです。 転送されたファイルの変更を検出し、差分だけを転送することができます。 そのため、帯域幅の節約と転送速度の向上を実現します。

rsyncは、LinuxやUnixなどのオペレーティングシステムで広く使用されており、ファイルのバックアップや同期に使用されます。 SSHを介して暗号化された接続を使用することもできるため、リモートのファイルのコピー、バックアップ、または同期を自動化することもできます。

rsyncは、一度に転送するファイルのサイズを最小限に抑えるため、差分転送アルゴリズムを使用しています。これにより、大量のデータを効率的に転送でき、ネットワーク上の帯域幅を最小限に抑えることができます。

rsyncコマンド

rsyncはスラッシュの使い方でディレクトリ配下を対象とするかディレクトリを対象とするか決まります。

  • /path/to/sourceの場合は、対象ディレクトリ配下のファイルが同期対象になります。
  • /path/to/source/の場合は、対象ディレクトリ自体が同期対象となります。

rsyncの基本的な使い方は、以下の通りです。

コピー

ローカルのディレクトリからローカルの別ディレクトリにコピーする場合

rsync -av /path/to/source /path/to/destination

リモートサーバーのディレクトリからローカルのディレクトリにコピーする場合

rsync -av user@remote:/path/to/source /path/to/destination

ローカルのディレクトリからリモートサーバーのディレクトリにコピーする場合

rsync -av /path/to/source user@remote:/path/to/destination

-aオプションはアーカイブモードで、-vオプションは詳細なログを表示することを指定しています。

同期

rsyncは--deleteオプションを利用しない場合、差分のコピーのみを実施します。 同期する場合は、不要になったファイルの削除も実施する必要があるため、--deleteオプションを指定する必要があります。

rsync -av --delete /path/to/source /path/to/destination

テスト

rsyncは--dry-runオプションを利用すると、実際に実行せずに実行内容だけを確認することができます。

exfatでマウントしたNFSへのバックアップ

自分の環境でフォルダをNASにバックアップしようとすると-aオプションでは権限エラーが発生しました。 ファイルの所有者等の変更ができないことが理由でした。 そのため、下記のコマンドを利用することにしました。

rsync -rlOtcv --delete /path/to/source /path/to/destination

メモ

2019年4月17日にリリースされたOpenSSH 8.0でscpコマンドではなく、sftpやrsyncなどの最近のコマンドを利用することが推奨されていました。

OpenSSH 8.0リリースノート

<-- Back to home
にほんブログ村 IT技術ブログ IT技術メモへPVアクセスランキング にほんブログ村