ある場所から別の場所にファイルをコピーすることは非常に基本的なタスクであり、cpコマンドを使用して簡単に実行できます。ただし、場合によっては、もう少しやらなければならないこともあります。これは、特に大きなファイルを転送するときにrsyncコマンドが来る場所です。 Rsync(Remote Sync)は、ローカルサーバーとリモートサーバー間でファイルを同期およびコピーするために使用できるLinuxベースのコマンドラインツールです。これにより、同じコンピューター上の2つのディレクトリ間、同じネットワーク上の2つの異なるコンピューター内のディレクトリ間、リモートシステム上の2つのディレクトリ間でファイルを同期できます。
rsyncの主な利点は、コンテンツ全体を盲目的にコピーする代わりに、ソースと宛先の違いのみを分析して転送し、システムリソースと帯域幅を節約できることです。 rsyncのその他の利点は次のとおりです。
- 転送する前にファイルを圧縮します
- データの転送中に進行状況バーを表示できます
- コピープロセスは、後で一時停止および再開できます
- SSH接続を介した転送を許可します
この記事では、Linuxでデータをコピーするためにrsyncを使用する方法を説明します。この記事で説明する手順を説明するためにDebian10を使用します。
Rsyncのインストール
RsyncはデフォルトでほとんどのLinuxオペレーティングシステムにインストールされています。ただし、インストールされていない場合は、次の手順に従ってインストールできます。
アクティビティに移動して、システムでターミナルアプリケーションを起動します Debianデスクトップの左上隅にあるタブ。次に、検索バーに「ターミナル」と入力します 。ターミナルアイコンが表示されたら、それをクリックして起動します。
次に、ターミナルで以下のコマンドを実行して、rsyncユーティリティをインストールします。
$ apt install rsync
Rsyncの使用
すべてのrsyncコマンドはrsyncで始まります その後に、さまざまなパラメータを指定できるオプションが続きます。 Rsyncは、転送仕様を形成するための制御を提供するいくつかのオプションを提供します。次に、それらがリモートマシンであるかローカルマシンであるかによって異なる送信元と宛先があります。
rsyncの基本的な構文は次のとおりです。
$ rsync [option] [source] [destination]
rsyncコマンドで使用される一般的なオプションのいくつか:
- -v :冗長
- -a :アーカイブモード。ファイルを再帰的にコピーし、シンボリックリンク、ファイルのアクセス許可、ユーザーとグループの所有権、タイムスタンプを保持します
- -z :データを圧縮します
- -h :人間が読める形式で、人間が読める形式で数値を出力します
- –max-size = SIZE、指定された最小サイズでファイルを転送します
- –min-size = SIZE、指定された最大サイズでファイルを転送します
次に、これらのオプションでrsyncを使用するいくつかの例を説明します。
ファイルとディレクトリをローカルサーバーにコピーします
ファイルをローカルにコピー
同じマシン上のソースディレクトリから宛先ディレクトリに単一または複数のファイルをコピーできます。例として、すべての .jpgをコピーします。 〜/ダウンロードからのファイル 〜/ Documentsへのディレクトリ 次のコマンドを使用してディレクトリを作成します:
$ rsync -zvh /home/tin/Downloads/*.jpg /home/tin/Documents
上記のコマンドを実行した後、すべての .jpg ソースディレクトリ内のファイル/home / tin / Downloads 宛先ディレクトリ/home / tin / Documentsにコピーされます 。
上記の例では、 -zなどのオプションを使用しています。 圧縮の場合、 -v 詳細出力および-h 人間が読める形式の出力用。
ディレクトリをローカルにコピー
ファイルと同様に、rsyncコマンドを使用して、フォルダー全体とディレクトリに含まれるファイルをコピーすることもできます。例として、〜/ダウンロードからすべてのファイルをコピーします。 〜/ Documentsへのディレクトリ 次のコマンドを使用してディレクトリを作成します:
$ rsync -zavh /home/tin/Downloads/ /home/tin/Documents
ファイルをリモートサーバーにコピーする
リモートマシンのソースディレクトリから宛先ディレクトリに単一または複数のファイルをコピーできます。たとえば、ファイルをローカルマシンからリモートマシンにコピーするには、次のコマンド構文を使用します。
$ rsync [options] [local path] [user]@[remote server]:[remote path]
最大サイズに基づいてファイルをコピーする
rsyncを使用して、ソースから宛先にコピーできるファイルの最大サイズを指定することもできます。これを行うには、次のコマンド構文を使用します。
$ rsync --max-size=”” [source] [destination]
例として、ソースから最大サイズ4000Kのファイルをコピーする場合があります〜/ダウンロード 宛先へ〜/ドキュメント ディレクトリ。この場合、サイズが4000kを超えるファイルは宛先にコピーされません。
$ rsync --max-size=4000k /home/tin/Downloads/*.iso /home/tin/Documents/
最小サイズに基づいてファイルをコピーする
同様に、rsyncを使用してソースから宛先にコピーできる最小サイズを指定することもできます。これを行うには、次のコマンド構文を使用します。
$ rsync --min-size=”” [source] [destination]
この例として、最大サイズが2Mのファイルをソースからコピーする場合があります〜/ダウンロード 宛先へ〜/ドキュメント ディレクトリ。サイズが2M未満のファイルは、rsyncを使用してコピーされません。
$ rsync --min-size=2M /home/tin/Downloads/*.iso /home/tin/Documents/
進行状況を表示
rsyncを使用してファイルをコピーしているときに進行状況を表示することもできます。 –進捗状況を追加します 以下に示すように、rsyncコマンドに続くフラグ:
$ rsync --progress [source] [destination]
例として、ソースからファイルをコピーしているときに進行状況を表示する場合があります〜/ダウンロード 宛先へ〜/ドキュメント ディレクトリ:
$ rsync --progress /home/tin/Downloads/VTS_03_1.VOB /home/tin/Documents
ファイルを除外する
rsyncを使用してソースから宛先にファイルをコピーするときに、特定のファイルを除外することもできます。例として、ソースからファイルをコピーするときにすべての.pdfファイルを除外する場合があります〜/ダウンロード 宛先へ〜/ドキュメント ディレクトリ。
rsync -zavh --exclude="*.pdf" /home/tin/Downloads/ /home/tin/Documents
次のコマンドを入力すると、 .pdfを除くすべてのファイルがソースから宛先にコピーされます。 ファイル。
これですべてです。ローカルおよびリモートで異なるディレクトリ間でファイルをコピーするためのrsyncユーティリティの基本的な使用法について説明しました。また、いくつかの一般的で便利なryncオプションについても説明しました。これら以外にも、転送動作のあらゆる側面を制御するために使用できるオプションがたくさんあります。これらのオプションを使用するには、rsyncのマニュアルページを参照してください。