例でrsyncを使用する方法

Rsyncは、ローカルとリモートの両方で、ファイル同期のための一般的なツールです。 他の同期ツールとは異なり、rsyncは帯域幅の消費を最小限に抑える興味深いアルゴリズムを使用します。 変更されたファイルの部分を移動するだけです。それは多くの状況で役立つことができる強力なユーティリティです。

この記事では、デモでrsyncを使い始める方法を紹介します。 デモはUbuntu18.04で実行されます。

Rsync

Rsyncはリモート同期という用語の略です。 名前にもかかわらず、それはリモートとローカルでファイル同期を処理することができます。 Rsyncという用語は、rsyncが同期に使用するrsyncプロトコルを参照するためにも使用されます。 この記事では、rsyncは常にプロトコルではなくツールを示します。

その純粋な人気のために、rsyncは、ほぼすべての単一のLinuxおよびUNIXのようなシステムで利用可能です。 それがプリインストールされていることを良いチャンスがあります。 そうでない場合は、システムにrsyncをインストールする方法について少し調べてください。rsyncが提供する機能の候補リストは次のとおりです。

  • ディレクトリコピー
  • 簡単なバックアップ設定
  • SSH上で動作することができます
  • デーモン/サーバーとして実行できます
  • ファイル許可保持

Rsyncの使用

rsyncにジャンプする前に、いくつかのダミーファイルを使用する必要があります。 最初にダミーディレクトリを作成しましょう。/div>

primary mkdir-v primary

作成したら、一握りのダミーファイルを作成します。 ファイルを作成するには、touchコマンドを使用します。 タッチコマンドの詳細については、こちらをご覧ください。

touch touch dummy{1..20}

出来上がり! これで、rsyncを使用してこれらのダミーファイルを使用してアクションを実行する準備が整いました。

Rsyncコマンド構造

Rsyncは、次のコマンド構造を使用します。option rsync<><src><<><<<><destination>

ローカルディレクトリを同期

今、それは複数の宛先間でファイルを同期するためにrsync この例では、dir_primaryの内容をdir_targetに同期します。/div>

target mkdir-v target

両方のディレクトリの内容を同期するようにrsyncに指示します。rs rsync-v-rプライマリ/ターゲット

ここでは、二つの異なる引数を使用しました。-v:rsyncに冗長モードで実行するように指示します
-r:再帰的、ディレクトリ同期に必要です。

次の例では、別のフラグを使用します。p>

primary rsync-v-a primary/target

-a:”archive”を表す組み合わせフラグ。

このフラグを使用すると、rsyncはシンボリック、特殊/デバイスファイル、変更時刻、ファイル権限、グループ、所有者などを保持しながら、内容を再帰的に同期 これは、”-r”フラグよりも一般的に使用されます。 アーカイブの場合、これはより推奨される方法です。

これまでに実行したすべてのコマンドで、sourceの場合、ディレクトリ名の後に常に”/”が保持されていることに気付きましたか? これは、ソースがソースディレクトリのすべての内容であることをrsyncに伝えるためです。 ソースディレクトリの末尾にある”/”が使用されていない場合、rsyncは単にその内容の代わりにソースディレクトリのコピーを作成します。

例で確認してみましょう。p>

出力結果を確認します。

tree tree target/

ほとんどの場合、これは必要なものではありません。 しかし、状況によっては、それが便利になるかもしれません。

Rsync test run

rsyncコマンドを実行する前に、コマンドが期待どおりにアクションを実行することを確認することが常に重要です。 特定のコマンドのrsyncアクションをテストする場合は、”-n”または”-dry-run”フラグを使用します。rs rsync-avnプライマリ/ターゲット

$rsync-avnプライマリ/ターゲット

ここで、出力は、コマンドが実際に実行された場合にrsyncが実行するものを示しています。 テストしているときはいつでも、何が起こっているのかを正確に表現するために”-v”フラグを使用することを忘れないでください。

リモート接続を介したRsync

これは、rsyncがサポートする別の興味深い機能です。 バックアップの場所がリモートの場合は、SSHを使用してリモートの場所でバックアップを実行するようにrsyncを簡単に設定できます。 ただし、両方のマシンにrsyncがインストールされている必要があります。 さらに、両方のシステムにもSSHキーが設定されている必要があります。

準備はできましたか?

始めよう 最初は、アーカイブの同期です。local rsync-a<local_dir><>>>>>>>><remote_host><
destination_dir>

ここで、この操作は、ローカルシステムからリモートシステムにディレ 逆は”プル”として知られています。p rsync-a<><remote_host>>>>>>>>::<source_dir><<>local_dir>

rsyncは、最初の引数をソースとして扱い、第二

便利なrsyncオプション

Rsyncはオプションのトンをサポートしています。 それらのすべてが自分の目的を果たします。 しかし、ほとんどの場合、それらのほんの一握りは、ほとんどの時間を使用されています。 このセクションでは、いくつかの便利なrsyncオプションを見てみましょう。ほとんどの場合、同期しようとしているファイルは圧縮されていません。

ほとんどの場合、同期しようとしているファイルは圧縮されていません。

source rsync-avz<>>>

この興味深いフラグは、”-progress”と”-partial”フラグの両方の機能を組み合わせたものです。 最初のものは、転送の進行状況バーを表示することであり、第二のものは、中断された転送を再開することを可能にすることです。 これらの機能は両方とも”-P”フラグに結合されます。

$ rsync -avzP <source><destination>

Now, let’s check out how rsync handles file syncing intelligently. Run the previous command again.source rsync-avzP<><>>

ここで、rsyncはすべてのファイルを再アップロードしませんでした。 代わりに、それは全く変わらないものをスキップしました。 この例では、すべてのファイルが宛先ディレクトリに存在するため、すべてのファイルをスキップしました。

ソースディレクトリからファイルを削除した場合はどうなりますか? デフォルトでは、rsyncは宛先ディレクトリから何も削除しません。 Rsyncでファイルを強制的に削除するには、”-delete”フラグを使用します。 ただし、dry runを使用して、コマンドが必要に応じて機能するかどうかをテストします。source rsync-avn–delete<><>>>

デフォルトでは、rsyncはソースから宛先ディレクトリにすべての単一のファイル/ディレクトリを同期します。 特定の状況では、同期から特定のファイルを含める/除外することができます。 Rsyncは、特定のファイルを除外/含めるために”–exclude”や”–include”のような便利なオプションを提供しています。 これらの引数の値としてファイルパターンを渡します。pattern rsync-avn–exclude=<>–include=<>パターン>パターン>divまた、rsyncが同期する必要がある最大ファイルサイズを定義することもできます。 これを行うには、”-max-size”フラグの後にファイルサイズを使用します。source rsync-avn–max-size=’10k'<><>

rsyncは、その袖に別の興味深い機能を持っています。 同期後にソースファイルが不要になりましたか? Rsyncはそれを行うことができますが、問題はありません。 ただし、”-delete”フラグを指定してrsyncを実行していないことを確認してください。 それ以外の場合、rsyncは同期されたファイルを宛先から削除します!/div>

$rsync-av–remove-source-files<>>

>

>>

最終的な考え

これらはrsyncの使用のいくつかの一般的で単純なシナリオです。 それはそれよりもはるかに多くを提供しています。 Rsyncデーモンまたは他のスクリプトを使用してrsync操作を自動化することができます。 うまくいけば、このガイドはrsyncを始めるのに役立ちました。より多くのrsyncに興味がありますか?

さて、あなたはrsyncをファイル複写機として使うことができます。 それはcpより有効、理性的です。 より詳細な機能と使用法は、rsyncのmanページにあります。

man man rsync

お楽しみください!



コメントを残す

メールアドレスが公開されることはありません。