この記事では、rsyncを使用してファイルをコピーする方法をいくつかの実用的な例とともに説明します。また、単一のファイル、複数のファイル、およびディレクトリをローカルシステムとリモートシステムの両方にコピーする際のrsyncの使用についても説明します。 Rsyncを使用して次のことを行う方法について説明します。
- ローカルシステム内のファイル/ディレクトリをコピーします
- ファイル/ディレクトリをローカルからリモートシステムにコピーします
- ファイル/ディレクトリをリモートシステムからローカルにコピーします
Ubuntu 20.04 LTSで、この記事に記載されているコマンドと手順について説明しました。 rsyncを使用してファイルをコピーするには、コマンドラインターミナルが必要です。コマンドラインターミナルアプリケーションを開くには、Ctrl + Alt + Tキーボードショートカットを使用します。
Rsyncのインストール
RsyncはUbuntu20.04LTSにプリインストールされています。ただし、誤ってシステムから削除された場合は、次のようにインストールできます。
$sudoaptインストールrsync
rsyncで使用できる一般的に使用されるオプションのいくつかを次に示します。
–a:アーカイブモード
–v:コピープロセスの詳細を表示します
–p:プログレスバーを表示します
–r:データを再帰的にコピーします
–z:データを圧縮します
–q:出力を抑制します
ファイルとディレクトリをローカルにコピーする
rsyncの一般的な構文は次のとおりです。
$rsync[オプション] [ソース] [行き先]
単一のファイルをローカルにコピーする
システム内のある場所から別の場所にファイルをコピーする場合は、次のように入力します。 rsync その後に、ソースファイル名と宛先ディレクトリが続きます。
たとえば、単一のファイルfile1.txtを現在の場所であるホームディレクトリから〜/ Documentsディレクトリにコピーするには、コマンドは次のようになります。
$rsync/家/信じる/file1.txt/家/信じる/ドキュメント注:現在ホームディレクトリで作業しているため、/ home / tin / file1.txtの代わりに、file1と入力することもできます。また、フルパスを/ home / tin / Documentsとして指定する代わりに、〜/ Documentsを使用できます。
複数のファイルをローカルにコピーする
システム内のある場所から別の場所に一度に複数のファイルをコピーする場合は、次のように入力します。 rsync その後に、ソースファイル名と宛先ディレクトリが続きます。
たとえば、ファイルfile2.txtとfile3.txtをホームディレクトリから〜/ Documentsディレクトリにコピーするには、次のコマンドを実行します。
$rsync/家/信じる/file2.txt/家/信じる/file3.txt/家/信じる/ドキュメント同じ拡張子を持つすべてのファイルをコピーするには、ファイル名を個別に指定する代わりに、アスタリスク(*)記号を使用できます。たとえば、拡張子が.zipで終わるホームディレクトリから〜/ Documentsディレクトリにすべてのファイルをコピーするには、次を使用します。
$rsync/家/信じる/ *.zip〜/ドキュメントディレクトリをローカルにコピーする
サブディレクトリとすべてのコンテンツを含むディレクトリをシステム内のある場所から別の場所にコピーする場合は、次のように入力します。 rsync その後にソースディレクトリと宛先ディレクトリが続きます。
たとえば、サンプルディレクトリをホームディレクトリ内のtest /ディレクトリにコピーするには、コマンドは次のようになります。
$rsync-の /家/信じる/サンプル/家/信じる/テスト注:ソースディレクトリの後に/を指定すると、ディレクトリの内容のみがコピーされます。ソースディレクトリの後に/を指定しない場合、ソースディレクトリも宛先ディレクトリにコピーされます。
次の出力のように、ソースディレクトリのサンプルも宛先ディレクトリにコピーされていることがわかります(サンプル/の代わりにサンプルをソースディレクトリとして使用しているため)。
上記の出力からわかるように、Rsyncはインクリメンタル転送をサポートしており、新しいファイルまたは更新されたファイルのみを転送します。
最大サイズに基づいてファイルをコピーする
コピー中に、–max-sizeオプションを使用してコピーできるファイルの最大サイズを指定することもできます。たとえば、2000k以下のファイルを〜/ Downloadsから〜/ Documentsディレクトリにコピーするには、コマンドは次のようになります。
$rsync-に --max-size= 2000k/家/信じる/ダウンロード/ * /家/信じる/ドキュメントこのコマンドは、2000kより大きいファイルを除いて、すべてのファイルを〜/ Downloadsから〜/ Documentsディレクトリにコピーします。
最小サイズに基づいてファイルをコピーする
同様に、–min-sizeオプションを使用してコピーできるファイルの最小サイズを指定することもできます。たとえば、5M以上のファイルを〜/ Downloadsから〜/ Documentsディレクトリにコピーするには、コマンドは次のようになります。
$rsync-に -最小サイズ= 5M/家/信じる/ダウンロード/ /家/信じる/ドキュメントこのコマンドは、5M未満のファイルを除いて、すべてのファイルを〜/ Downloadsから〜/ Documentsディレクトリにコピーします。
ファイルを除外する
あるディレクトリから別のディレクトリにファイルをコピーするときに、—excludeオプションに続けてファイル名またはファイルタイプの拡張子を使用して、一部のファイルを除外できます。
たとえば、〜/ Downloadsから〜/ Documentsディレクトリにファイルをコピーするときにすべての.zipファイルを除外するには、コマンドは次のようになります。
$rsync-に -除外する='*。ジップ' /家/信じる/ダウンロード/ /家/信じる/ドキュメントファイルとディレクトリをリモートでコピーする
Rsyncを使用すると、単一のファイル、複数のファイル、およびディレクトリをリモートシステムにコピーできます。ファイルとディレクトリをリモートでコピーするには、次のものが必要です。
- ローカルシステムとリモートシステムの両方にインストールされたRsync
- リモートシステムへのSSHアクセス
- リモートユーザーパスワード
rsyncを使用してファイルをコピーする前に、SSH経由でリモートシステムにアクセスできることを確認してください。
$sshremote_user@remote_ip
rsyncを使用してファイルとディレクトリをリモートシステムにコピーするための一般的な構文:
たとえば、単一のファイルfile.txtを〜/ Downloadsからリモートシステム〜/ Documentsディレクトリにコピーするには、コマンドは次のようになります。
$rsync-v〜/ダウンロード/file1.txt umara@192.168.72.164:〜/ドキュメント同様に、ローカルシステムの〜/ Downloads / filesディレクトリとそのサブディレクトリおよびすべてのコンテンツをリモートシステムの〜/ Downloads / samplesディレクトリにコピーするには次のようにします。
$rsync-rv〜/ダウンロード/ファイルウムラ@192.168.72.164:〜/ダウンロード/サンプルファイルとディレクトリをリモートマシンからローカルマシンにコピーすることもできます。たとえば、file2.txtをリモートシステムからローカルシステムのデスクトップにコピーするには、次のようにします。
$rsync-vumara@192.168.72.164:〜/ダウンロード/file2.txt〜/デスクトップ/同様に、リモートシステムからローカルシステムにディレクトリをコピーするには
$rsync-rvumara@192.168.72.164:〜/ダウンロード/サンプル〜/デスクトップ/テストリモートシステムとの間でファイルをコピーするときに、–max-size、–min-size、–excludeなどのすべてのオプションを使用することもできます。
Rsyncは、ファイルをソースから宛先にローカルまたはリモートでコピーするための優れたツールです。これには、リモートシステムとの間でファイルを転送する際の柔軟性と制御を可能にする多数のオプションセットが含まれています。