Rsyncコマンドを使用すると、SSH接続またはローカルマシンを介して、さまざまなディレクトリやマシン間でファイルを転送および同期できます。ディレクトリをバックアップしたり、データを同期したりする必要がある場合、Rsyncはシステムをバックアップするための最良のツールの1つです。 Rsyncを使用すると、ファイルをコピーするよりもはるかに効率的です。Rsyncは異なるものだけをコピーするからです。
たとえば、1000枚の写真をバックアップしようとしている場合、Rsyncは、最後のバックアップ以降に新しいか異なる特定のファイルのみを選択します。また、データをコピーしてネットワーク接続を失い、Rsyncコマンドを再実行すると、中断した場所がわかり、最初からやり直す必要がなくなります。
Linuxのシステム管理者は、エクスペリエンスをスムーズにするために、LinuxでのRsyncコマンドの主要で実用的な例をいくつか知っている必要があります。
LinuxでのRsyncの機能
ここでは、Rsyncのいくつかの基本的な機能を追加しています。 LinuxでのRsyncコマンドの例を後で理解するのに役立つ、リモート同期コマンドの詳細な概要については、以下のポイントを確認できます。
- Rsyncコマンドは、ファイル、ディレクトリ、およびサブディレクトリをコピーできます。
- Rsyncはデルタ転送アルゴリズムを使用するため、ツールはすでに宛先アドレスにあるファイルをスキップします。
- Rsyncは、クライアントおよびホストシステムとまったく同じファイルを無視します。
- SSHまたはローカルマシンの両方でRsyncを使用できます。
- ファイルのコピーと一緒にtarコマンドを実行できます。
- ほとんどの場合、Rsyncは sudoを必要としません。 特権。
- パイプラインコマンドをRsyncと一緒に使用すると、ファイルをより高速に転送し、レイテンシを低く抑えることができます。
- Web経由でファイルをコピーする場合、RsyncはTCPプロトコルを使用します。
- Rsyncは必要な帯域幅の量を減らすことができます。
- LinuxのRsyncを介して2つ以上のリモートホスト間でファイルをコピーすることはできません。
Linuxのリモート同期構文
ここでは、いくつかの最も重要な構文とRsyncの概要を追加します。 LinuxでのRsyncコマンドの例をよりよく理解するには、構文とフラグを確認することが重要です。
指定されたコマンド形式は、ローカルマシンでファイルを転送するためのものです。
rsync [OPTION...] SRC... [DEST]
Rsyncは、指定されたコマンド形式を使用して、リモートシェルを介してファイルを転送します。
---Pull: rsync [OPTION...] [[email protected]]HOST:SRC... [DEST] Push: rsync [OPTION...] SRC... [[email protected]]HOST:DEST
Rsyncは、デーモンとしてホストにアクセスするときに、指定されたコマンド形式を使用してファイルを転送します。
Pull: rsync [OPTION...] [[email protected]]HOST::SRC... [DEST] rsync [OPTION...] rsync://[[email protected]]HOST[:PORT]/SRC... [DEST] Push: rsync [OPTION...] SRC... [[email protected]]HOST::DEST rsync [OPTION...] SRC... rsync://[[email protected]]HOST[:PORT]/DEST
LinuxにRsyncをインストールする
LinuxでのRsyncコマンドの例に飛び込む前に、システムにツールがインストールされているかどうかを確認する必要があります。デフォルトでは、Rsyncにはすべての主要なLinuxディストリビューションがプリインストールされています。したがって、ツールがシステムにインストールされていない場合は、マシンにRsyncツールを簡単にインストールできます。ここでは、Rsyncをインストールするための主要なLinuxディストリビューションのコマンドを登録しています。
FedoraおよびRedHatLinuxでRsyncを入手する
sudo yum install rsync -y sudo dnf install rsync -y
Debian /UbuntuLinuxにRsyncをインストールする
sudo apt install rsync -y
Rsyncツールは、ArchLinuxシステムのSnapコマンドから入手できます。 Arch LinuxでRsyncツールを入手するには、以下のコマンドをそれぞれ実行してください。まず、Linuxでリポジトリのクローンを作成します。
git clone https://aur.archlinux.org/snapd.git cd snapd makepkg -si
次に、システム制御コマンドを実行してソケットを使用します。次に、Snapコマンドを実行してツールをインストールします。
sudo systemctl enable --now snapd.socket sudo ln -s /var/lib/snapd/snap /snap sudo snap install rsync-leftyfb
最後に、インストールが終了したら、ターミナルシェルのRsyncのヘルプページを確認できます。
$ rsync --help
LinuxのRsync
Rsyncは、リモート同期コマンドの短縮形です。このRsyncツールはMacとLinuxの両方で利用できます。どちらの場合も、構文とコマンドスタイルはほとんど同じです。さて、リモート同期と言っても、SSHまたはインターネットを介してファイルを同期またはコピーする必要があるとは限りません。
同じマシンでRsyncを実行して、2つの異なるディレクトリまたはサブディレクトリを同期することもできます。 Rsyncの非常に効果的な使用は、パッケージリポジトリと代替サーバーまたはミラーサーバーの更新で見られます。
この投稿では、Linuxで最も使用されている強力なRsyncコマンドの例をいくつか紹介します。
LinuxでのRsyncの例
LinuxでのRsyncコマンドとフォーマットの基本的な例を次に示します。以下に示すのはコマンド形式で、もう1つはRsyncoverSSHを使用するためのものです。
Linuxでは、Rsyncをホストクライアント環境で実行すると、SSH接続を介してリンクが確立されます。リモートユーザーまたはクライアントが接続を受け入れると、クライアントRsyncはホストシステム上のRsyncを自動的にウェイクアップします。
Rsyncの一般的なコマンド形式
$ rsync [options] source [destination]
SSH接続のRsyncコマンド形式
$ rsync local-file [email protected]:remote-file
1。ディレクトリ上のすべてのファイルをコピーするためのリモート同期コマンド
Linuxでの以下のRsyncコマンドの例は、ドキュメントからすべてのファイルをコピーします。 / tmp/documentsディレクトリに移動します。
$ rsync -av Documents/* /tmp/documents
このコマンドでは、3つのフラグを使用しました。 -aと-v、および*。これが彼らがコマンドで何をするかについての説明です。
- -a:-aフラグは、アーカイブ/ライブラリ方式でコマンドを実行します。
- -v:-v blagは、Rsyncを冗長として実行するために使用されます。
- – *:*記号は、すべてのファイルが選択およびコピーされることを保証します。
ここで、元のディレクトリにいくつかの新しいファイルを追加してRsyncを再度実行すると、新しいファイルがコピーされ、シェルの言語出力に通知されます。
$ rsync -av Documents/* /tmp/documents
以下のコマンドを使用すると、テストを実行して、エラーを回避するために同期されるファイルを確認できます。
$ rsync -aunv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/
テストチェックを実行した後、コマンドの-nフラグを削除することで、実際のコマンドを実行できます。
$ rsync -auv /home/ubuntupit/Documents/* /home/ubuntupit/Pictures/
2。 SSH経由のRsyncコマンドの例
これまで、ローカルマシンでRsyncを実行する方法に関するRsyncの例をいくつか見てきました。ここでは、サーバー上で実行する方法を説明します。すべての構文は同じです。 Webサーバーのアドレスとユーザー名を入力するだけです。
$ rsync -av --ignore-existing Documents/* [email protected]:~/all/
3。 LinuxでのRsyncの例:ドライランRsync
プログラミングでは、ドライランという用語は、プレビューを表示するためだけにコマンドを実行すること、またはコマンドを実行した場合に何が起こるかを確認するために誤った実行を行うこととして定義されます。ここでは、Rsyncにもドライランコマンドを適用できます。
以下のRsyncコマンドの例では、リモートLinuxサーバーからホストシステムで同期されるファイルを確認できます。後で、ドライランなしでコマンドを実行できます。
$ rsync -av --dry-run --update Documents/* [email protected]:~/all/ $ rsync -av --update Documents/* [email protected]:~/all/
4。ローカルマシンとリモートサーバー間でファイルを同期する
上記のコマンドは、ローカルマシンからローカルマシンに、またはサーバーから別のホストにファイルを送信する方法を示しています。以下のRsyncの例は、ツールを使用してローカルマシンからリモートLinuxマシンにファイルを送信する方法を示しています。
rsync [options] [files] [remote-username]@[ip-address]:/[destination]
5。リモートサーバーからローカルマシンにファイルを転送する
上記のコマンドの逆で、以下のRsyncコマンドの例は、リモートLinuxサーバーからローカルマシンにファイルを送信する方法を示しています。
rsync -rv [email protected]:/home/ubuntupit/Backup /home/ubuntupit/Desktop/Original
6。 Rsyncで進行状況を表示する
これは、Rsyncツールを介して大きなファイルを転送する必要がある人にとって非常に重要です。たとえば、以下のRsyncコマンドの例は、LinuxのCLIで転送の進行状況を監視および監視する方法を示しています。
sudo rsync -rv --progress Original/* /etc/ubuntupit
「–include」フラグを指定してRsyncコマンドを実行すると、特定のファイルを同期プロセスに追加できます。
sudo rsync -vr --include 'I*' Original/ /etc/Backup/
7。ファイルを無視するには、「–exclude」を指定してRsyncを使用します
Rsyncでは、除外を使用することもできます コマンドからファイルを除外するコマンド。下記のLinuxでのRsyncコマンドの例は、同期したくないファイルを除外する方法を示しています。ここでは、ファイル To_check_rsync_two(another copy).txtを除外しました。 LinuxシステムでこのRsyncコマンドを使用して同期します。
$ sudo rsync -vr --exclude 'To_check_rsync_two (another copy).txt' /home/ubuntupit/Desktop/ /home/ubuntupit/Documents/
同様に、rsyncがデフォルトで追加されないと思われるものを強制的に含める場合は、ファイルを含めることもできます。
sudo rsync -vr --exclude '*' --include 'I*' Original/ /etc/Backup/
Rsyncコマンドを使用して同期するファイルを削除または削除するには、ターミナルシェルのコマンドで-deleteフラグを使用できます。
rsync -vr --delete /etc/Backup/ [email protected]:/home/ubuntupit/Backup
8。最大サイズ制限を設定する
コンピューターで限られた量の帯域幅データを使用していて、複数のファイルを渡す必要があるが、帯域幅を節約するために転送をいつ停止する必要があるかわからない場合は、以下のRsyncの例を使用できます最大サイズのファイル転送を制限するコマンド。
rsync -vr --max-size='200k' /etc/Backup/ [email protected]:/home/ubuntupit/Backup
9。転送後にソースファイルを自動的に削除する
ホストPCのディスク容量が限られていて、ファイルをシステムに転送した後にファイルを同時に削除する場合は、LinuxターミナルシェルのRsyncコマンドで削除フラグを使用できます。
$ rsync -vr --remove-source-files Original/* [email protected]:/home/ubuntupit/backups/
10。ファイル全体をリモート同期で同期する
これまで、Rsyncコマンドは編集または変更されていないファイルのみを同期することを見てきました。ただし、変更されたファイルと変更されていないファイルをすべて同期する場合は、以下からRsyncコマンドを使用できます。
rsync -vrW Original/* [email protected]:/home/ubuntupit/Backup
11。宛先で変更されたファイルの同期を停止する
システム全体を選択した後、特定のファイルまたはフォルダーを同期したくない場合は、そのパスをRsyncコマンドに割り当てて、Rsyncツールが同期のパスをスキップするようにすることができます。
rsync -vu Original/* [email protected]:/home/ubuntupit/Backup
12。違いを監視するために-iフラグを追加します
元のファイルと同期後のファイルの違いを表示するには、コマンドでiフラグを使用してください。
rsync -avzi Original/ Backup/
13。リモート同期を使用してディレクトリ構造のみをコピーする
このコマンドは、ファイルのコピーまたは転送に関心のある人にとって非常に興味深いものです。これで、rsyncコマンドを使用して、rsyncコマンドを介してディレクトリ構造を確認できます。
rsync -av -f"+ */" -f"- *" /home/ubuntupit/Desktop/Original/ /home/ubuntupit/Documents/
14。ディレクトリ名に日付スタンプを追加
リモート同期ツールを介してファイルを転送するときにファイルにタイムスタンプを含めるには、宛先の場所のコマンドで以下のスタンプ形式を使用できます。
Destination directory: $(date +\\%Y-\\%m-\\%d) sudo rsync -rv /home/ubuntupit/Documents/* /etc/$(date +\\%Y-\\%m-\\%d)
15。複数のファイルをリモートでコピーする
これまで、単一のファイルをリモートサーバーからローカルマシンに、またはその逆にホストPCからローカルマシンにコピーして転送する方法を見てきました。次に、複数のファイルを追加して、1つのRsyncコマンドで転送する方法を説明します。複数のファイルを追加するには、コマンドですべてのファイルパスを指定する必要があります。
rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt /home/ubuntupit/ rsync -vr /home/ubuntupit/Documents/To_check_rsync.txt /home/ubuntupit/Desktop/To_check_rsync_two.txt [email protected]:/home/ubuntupit/Backup
洞察!
RsyncコマンドはCプログラミング言語で記述されており、シングルスレッドアプリケーションとして実行されるため、このツールはカーネルや他のアプリケーションと簡単に通信できます。投稿全体で、マシンやサーバーを介してファイルを効果的に転送するためのRsyncツールとLinuxのRsyncコマンドの例を見てきました。
適切な構成と知識を備えたRsyncコマンドを使用して、apacheサーバーを同期することもできます。場合によっては、Rsyncコマンドを、ファイルが変更されたかどうかを実行できるチェックサムコマンドに関連付けることができます。 Rsyncにもっと興味がある場合は、GUIベースのRsyncツールを試すこともできます。
この投稿が有用で有益であると思われる場合は、お友達やLinuxコミュニティと共有してください。また、この投稿に関するご意見をコメント欄に記入することをお勧めします。