rsyncコマンドのメモ
目次
はじめに
rsyncは、リモート、ローカルのシステム間でファイルを同期するためのツールです。
転送されたファイルの変更を検出し、差分だけを転送することができます。
そのため、帯域幅の節約と転送速度の向上を実現します。
rsyncは、LinuxやUnixなどのオペレーティングシステムで広く使用されており、ファイルのバックアップや同期に使用されます。
SSHを介して暗号化された接続を使用することもできるため、リモートのファイルのコピー、バックアップ、または同期を自動化することもできます。
rsyncは、一度に転送するファイルのサイズを最小限に抑えるため、差分転送アルゴリズムを使用しています。これにより、大量のデータを効率的に転送でき、ネットワーク上の帯域幅を最小限に抑えることができます。
rsyncコマンド
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オプションは詳細なログを表示することを指定しています。
また、--deleteオプションを指定すると、同期先に存在しないファイルやディレクトリを削除することができます。
exfatでマウントしたNFSへのバックアップ
自分の環境でフォルダをNASにバックアップしようとすると-a
オプションでは権限エラーが発生しました。
ファイルの所有者等の変更ができないことが理由でした。
そのため、下記のコマンドを利用することにしました。
rsync -rlOtcv --delete /path/to/source /path/to/destination
メモ
2019年4月17日にリリースされたOpenSSH 8.0でscpコマンドではなく、sftpやrsyncなどの最近のコマンドを利用することが推奨されていました。