はじめに
Rsyncは「RemoteSync」の略です。 rsync
コマンドを使用すると、異なるマシンおよびディレクトリ間でデータを転送および同期できます。 Secure Shell(SSH)プロトコルを使用すると、ファイルを別の場所に安全にコピーできます。
rsyncツールには、ファイルをコピーする他の方法と比較して多くの利点があります。ファイルの送受信中に圧縮と解凍の両方を使用します。このツールは、新しいファイルまたは更新されたファイルのみを転送するため、帯域幅が節約され、転送時間が短縮されます。
このガイドに従って、SSH経由でrsyncを使用してファイルを転送またはコピーする方法を学習してください。
前提条件
- sudoを使用するユーザー またはルート 特権
- SSHアクセス コマンドライン/ターミナルウィンドウ経由でサーバーに送信
- ローカルマシンと宛先マシンにインストールされたRsync
Rsyncのインストールを確認する
最新のLinuxディストリビューションにはrsyncがあります デフォルトでは。システムにrsyncがインストールされていることを確認するには、インストールコマンドを実行します。
DebianおよびUbuntuの場合 マシンの場合は、 apt-get
を使用します :
sudo apt-get install rsync
rsyncがすでにインストールされている場合、出力にはツールの現在のバージョンが表示されます。
RPMベース CentOSなどのマシンは以下を使用します:
sudo yum install rsync
SSH経由でRsyncを使用してファイルを転送する
SSH経由でrsyncを使用してファイルとディレクトリの転送を開始する前に、SSHを使用してリモートサーバーに接続できることを確認してください。確認が完了すると、データのバックアップを開始できます。宛先システムに十分なストレージスペースがあることを確認してください。
rsync
を使用してSSH経由でリモートサーバーにファイルをコピーするための構文 コマンドは次のとおりです:
rsync OPTION SourceDirectory_or_filePath [email protected]_or_name:Target
rsyncコマンドの例
ガイドの残りの部分に従って、最も一般的なrsyncのユースケースの例を確認してください。 。
Rsyncを使用して特定のファイルを転送する
単一のファイルをリモートマシンに転送するには、ソースファイルのフルパスを入力します。例:
rsync ~/Dir1/source.pdf [email protected]:~/Desktop/test
名前にスペースが含まれているファイルには、必ず引用符を使用してください。例:
rsync ~/Desktop/Dir1/"source pdf sample.pdf" [email protected]:~/Desktop/test
Rsyncを使用してディレクトリのコンテンツを転送する
SSH経由でディレクトリの内容をrsyncと同期する場合、いくつかのオプションがあります。
ソースディレクトリからリモートホスト上のターゲットにすべてのファイルを転送するには、次のように入力します。
rsync ~/SourceDirectory/* [email protected]:~/Destination
アスタリスク(*)は、ソースディレクトリ内のすべてのファイルを含めるようにツールに指示します。サブディレクトリはありません 転送済み 。
例:
出力には、転送中にrsyncがスキップしたディレクトリが表示されます。
ソースディレクトリのすべてのサブディレクトリを含めるには、 -r
を使用します (再帰的) または-a
(アーカイブ) オプション。 -a
フラグは私たちがお勧めするものです。このオプションは再帰的に同期し、すべてのアクセス許可とファイル設定を保持します。今回はアスタリスクを使用しないでください ソースパスにあります。
rsync -a ~/Desktop/Dir1/ [email protected]:~/Desktop/test
この形式でコマンドを実行すると、rsyncはすべてのファイルとサブディレクトリをソースディレクトリからターゲットの場所に転送します。上記の例から、テスト フォルダには、 Dir1の内容が含まれます 転送が完了したときのソース。
コピーからファイルを除外するには、rsyncコマンドを使用してデータ転送でファイルとディレクトリを除外する方法に関するガイドを確認してください。
Rsyncファイル転送の進行状況を確認する
rsync転送のステータスを確認するには、 -P
を使用します オプション。このオプションは、転送時間、および同期されているファイルとディレクトリの名前を表示します。
接続に問題があり、同期が中断された場合は、 -P
転送を再開します。
この形式でコマンドを実行して再帰的に同期し、転送のステータスを確認します。
rsync -aP ~/SourceDirectory/ [email protected]:~/Destination
例:
ソースディレクトリに変更がないときに同じコマンドを再実行すると、転送は行われません。その理由は、rsyncはファイルと新しいファイルの変更のみを転送するためです。この場合、出力には次の行のみが表示されます。
1つのソースファイルにも変更がある場合、rsyncはそれを検出し、ターゲットと同期します。
1つのファイルに変更を加え、同じコマンドを再実行しました:
出力には、ソースサンプル2が表示されます。 rsyncがファイルを変更したことを検出したため、ファイルが転送されました。