管理者であれ一般ユーザーであれ、ファイルのバックアップを定期的に取ったり、複数のシステム間で同期したりする必要があるはずです。毎回すべてのファイルを上書きする必要があると、時間と手間がかかって大変です。ここで活躍するのが Linux Rsync リモートサーバー ツールです。このガイドでは、Rsync の最も便利なコマンドを紹介し、高速で安全な機能を使いこなせるようにします。
Rsync ユーティリティとは?
Remote Sync(Rsync) は Linux/Unix で広く使われているコマンドで、リモートアクセスまたはローカルでファイルやディレクトリをコピーして同期するために使用できます。Rsync コマンドを使用すると、同期、コピー、バックアップ取得など、データ関連のさまざまなタスクを実行できます。さらに、Linux システムを別のシステムにミラーリングすることも可能です。
Rsync をリモートサーバーに使う主な利点は、高速ファイル転送を活用することです。2つのソース間のデータを変換する際、差分だけを考慮します。つまり、Rsync コマンドを使用すれば、すべてのデータを盲目的に転送する時間を節約できます。2つの Linux システム間の差分だけが対象になるからです。
Rsync を使う理由は?
ご存じかもしれませんが、利用可能なバックアップツールはいろいろあります。問題は、他のユーティリティやコマンドと比べて Rsync は何が特別なのかということです。
例えば、 File Transfer Protocol(FTP) でウェブサイトのローカルコピーを作るか、または SCP(Secure Copy Protocol) このタスクに使用できます。ただし、これら2つの方法には欠点があります。FTPはデータ暗号化に対応していません。これは望ましくありません。一方、SCPはFTPのような暗号化されていない転送の問題はありませんが、トンネルを作成するため転送に時間がかかります。
これらの問題の代替ソリューションとして、鍵ベースの暗号化でリモートサーバーへRsyncを使用できます(単にRsync SSHまたはRsync over SSHと呼ばれます)。これは重複したデータの送信を防ぎ、SSH鍵を利用します。RsyncはデータをやりとりするときにこれはRsyncが圧縮と解凍を採用しているため、帯域幅の使用が少なくなることに注意してください。
Rsyncのインストール方法
Rsyncはすでにシステムにインストールされている可能性が高いですが、詳しく説明しましょう。その前に、Rsync over SSHを使用するため、SSHはソースシステムと宛先システムの両方にインストール済みである必要があることに注意してください。
ステップ1: SSHのバージョン確認
次のコマンドを使用してSSHのバージョンを確認できます:
ssh -V
リモートサーバーへRsyncするには、ローカルサーバー(ソース)とリモートサーバーが必要です。また、ローカルサーバーが管理者権限(sudo)を持っていることを確認する必要があります。
ステップ2: Rsync Linuxのインストール
次のコマンドで、Ubuntu、Linux Mint、DebianにRsyncをインストールできます:
sudo apt install rsync -y
Fedora、CentOS、AlmaLinux、Red Hatなど他のLinuxディストリビューションを使用している場合は、次のコマンドを入力してシステムにRsyncリモートサーバーサービスをインストールしてください:
sudo dnf install rsync
注: aptはDebianベースのディストリビューションで使用される便利なパッケージインストールツールです。
ステップ3: Rsyncの開始
次のコマンドを使用してRsyncを開始し、その後有効にして使用を開始する必要があります:
sudo systemctl start rsync
sudo systemctl enable rsync
ステップ4: Rsyncインストールの確認
次のコマンドを入力して、Rsyncが正しくインストールされたか確認し、Linuxシステムで使用しているバージョンを確認してください:
rsync --version
次のセクションでは、鍵ベース認証を使用してバックアップを作成するためのツール機能の使い方について説明します。
Rsync over SSHを使用してバックアップを作成する方法
増分バックアップの作成はRsync over SSHの使用例の1つです。次のコマンドに注意して、その仕組みを理解してください:
rsync -av -e ssh /sourceDir/ user@remote:/path/to/destinationDir
上記のコマンドを実行するとを同期するのに役立ちます sourceDir と destinationDir。このコマンドには他のオプションが含まれており、以下のようなものについて理解しておく必要があります -a (archive) と -v (verbose)注意してください -e ssh オプションはRsync接続がSSHプロトコル上で実行されることを要求します。
以下を希望する場合 SSH接続 デフォルト(ポート22)以外のポートで受け入れるよう設定する必要がある場合は、ポート番号を -e ssh. の後に指定する必要があります。次のコマンドを参照して仕組みを理解してください。
rsync -av -e ssh 1998 sourceDir/ user@remote:/path/to/destinationDir
上記のコマンドでは、ポート22の代わりに1998をSSHポートとして使用したいと想定しています。
SSH経由でリモートサーバーへのRsyncには、かなり役立つ他のオプションもあります。たとえば –partial このオプションを使うと、Rsync接続の切断などの問題が発生した場合でも、前回中断した転送を続けることができます。また、現在のファイル転送の進捗状況を確認することもできます。 –progress オプションです。さらに、Linux Rsync to remote server utility を使うと、この2つの機能を同時に使えます。その場合は、 -p コマンドラインのフラグ。
rsync -avP -e ssh /sourceDir/ user@remote:/path/to/destinationDir
リモートサーバーへのRsyncキーコマンドを使用すれば、転送前にデータを圧縮できます。圧縮処理にCPUを使用しますが、ファイル転送が高速化され、必要な帯域幅も削減されるため、非常に役立ちます。
Rsyncコマンドを使用すると、ローカルまたはリモートのファイルとディレクトリをコピーできます。Rsyncの主な利点は、 差分転送アルゴリズムこれにより、ソースから宛先への重複したデータのコピーを防ぐことができます。前述の通り、Rsync のリモートサーバーユーティリティとしてのこの機能は、日次バックアップとシステムミラーリングを扱いたい場合に役立ちます。これを踏まえて、ローカル用途での Rsync コマンドの使用方法を見ていきましょう。
Rsync を使用してローカル同期を実行する方法
ローカル同期とRsyncコマンドの使い方について詳しく説明する前に、以下に示すローカルRsyncの基本的な構造を理解しておく必要があります。
rsync [options] [Source] [Destination]
ファイルをローカルにコピー
デスクトップディレクトリ( Cloudzy)から /home/Public フォルダ。以下の情報を入力してください。
rsync -zvh /desktop/Cloudzy/myfile.pdf /home/Public
上記の Rsync コマンドには 3 つのオプションが含まれています -zvh;を使用することで -z転送中にファイルが圧縮されます。 vオプション は詳細出力を意味し、 h オプション 人間が出力を読めるようにしてくれるもの、つまり人間が理解できる形式で結果を表示することです。
ディレクトリをローカルにコピーする
デスクトップ ディレクトリ (名前は Cloudzy)から /home/Public フォルダに移動してください。以下のコマンドを入力してください。
rsync -zavh /desktop/Cloudzy/myfile.pdf /home/Public
ザ -a このコマンドのオプションは、同期中にディレクトリとファイルをアーカイブします。
コピー先フォルダのディレクトリリストをすぐに確認して、ディレクトリがコピーされたかどうかを検証できます。そのには次のコマンドを使用してください:
ls -ld /home/Public
ファイルとディレクトリを再帰的にローカルで同期する (再帰的 Rsync)
複数のディレクトリとファイルがあったとしたら /desktop/Cloudzy、Linux Rsync コマンドを使って再帰的にコピーしたいですか?
この場合、 -rオプション を使用してローカルファイルとディレクトリを再帰的に同期します。また アーカイブオプション(-a) を使用することもできます。再帰的なコピーなど他の用途があるためです。以下のコマンドを参照して、Rsyncの再帰的コマンドに慣れてください。
rsync -zrvh /desktop/Cloudzy /home/Public
Or
rsync -zrvh /desktop/Cloudzy /home/Public
ローカルシステムからリモートへのディレクトリとファイルのコピー
前のセクションで説明したLinux Rsyncのリモートサーバー特性を除いて、このよく知られたコマンドはローカルマシンからリモートシステムへのファイルとディレクトリの同期も可能です。
フォルダをコピーしたいとします (/desktop/Cloudzy/新しいフォルダ) ローカルマシンからリモートシステムへ (IP: 192.168.1.79を含む) 下 /mycpt。以下は動作例です:
rsync -zarvh /desktop/Cloudzy/newfolder [email protected]:/mycpt
Rsyncを使用してディレクトリをファイルなしでコピーするには?
場合によっては、Linux Rsyncのリモートサーバー機能を使用して、ファイルなしでディレクトリをコピーしたいことがあります。この同期はリモートマシンからローカルシステムへ、またはその逆の方向で行うことができます。
この記事では、リモートシステムを 192.168.1.79. 以下に配置されているとします /mycpt フォルダの /desktop/Cloudzy ディレクトリをローカルシステムからコピーしたいが、ファイルは含めたくない場合。以下のコマンドを入力してください:
rsync -av -f"+ */" -f"- *" /desktop/Cloudzy [email protected]:/mycpt/
その他の便利なRsyncコマンド
ここでは、実用的なLinux Rsyncコマンドをいくつか説明します。
Rsyncでのファイル転送の最大サイズを決定する
Rsyncコマンドを使用してファイル転送のサイズ制限を設定できます。これは定期的にリモートサーバーとローカルマシンにRsyncを実行する場合に便利です。帯域幅と時間が重要な要素である場合に役立ちます。以下のコマンドに注意して、Rsyncファイル転送のサイズ制限を設定する方法を理解してください:
rsync -avzhe ssh --max-size='100k' /desktop/Cloudzy [email protected]:/home/Public
Rsyncでのファイル転送の最小サイズを決定する
ファイル転送の最大サイズを設定するのと同じように、Rsyncリモートサーバーツールで転送したいファイルの最小サイズを決定できます。以下のコマンドでは、最小ファイルサイズを10kに設定します:
rsync -avzhe ssh --min-size='10k' /desktop/Cloudzy [email protected]:/home/Public
同期完了後にソースからファイルを削除する
Rsyncコマンドの使用が終わったら、ソースシステムにファイルを保持する必要がなくなる場合があります。この場合、以下のようにLinux Rsyncコマンドを使用してソースからファイルを削除できます:
rsync --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
ドライラン同期
Linux Rsyncユーティリティが初めてで、オプションに慣れていない場合、 ドライラン が正しい方法です。Rsyncでドライラン実行を使用すると、ファイルは変更されませんが、コマンド出力が表示されます。コマンドを実行したいことを確認した後、 –ドライラン オプションを削除してターミナルで実行できます。ドライラン機能の詳細については、次のコマンドを確認してください。
rsync --dry-run --remove-source-files -zvh /desktop/Cloudzy [email protected]:/home/Public
まとめ: Linux Rsyncコマンドの活用
この記事では、Linux Rsyncをリモートサーバーに使用する機能(およびローカルサーバーへのRsync)について、さまざまなユースケースを含めて説明しました システムミラーリング、ファイルバックアップの作成、およびローカルとリモート間でのファイルとディレクトリのコピーを効率的に行う方法です。このよく知られたLinuxコマンドを使用すれば、高速ファイル転送のメリットを受けながらSSHとデータ圧縮を活用できます。
ウェブサイトやリモートデスクトップをホストするために、エコノミーまたはプレミアムなLinux VPSを最安値で手に入れましょう。VPSはLinux KVMで動作して効率を向上させ、NVMe SSDストレージを備えた強力なハードウェアで速度を高めます。
詳細を見るこのOSを最大限に活用するには、 Linux VPS ソリューションをCloudzyから取得することで、KVMベースのホスティングプランのメリットを享受できます。当社は99.95%のアップタイム、安定性、最小限のレイテンシ、世界中のデータセンター(12ヶ所)、超高速SSDストレージ、24/7技術サポートを備えた高性能VPSサービスを提供しています。Linux VPSを$4.95で利用を開始でき、より高度なソリューションが必要な場合はスケールアップできます。
よくあるご質問
TCPポートはRsyncのどのポートを使用しますか?
SSHは通常、デフォルトポートとして22番を使用します。したがって、SSH上のrsyncを利用する場合、このポートで動作します。一方、Rsyncデーモンを使用する場合は、873番ポートが使用されます。
Rsyncとは何ですか?
RsyncはLinuxユーティリティで、ファイルとディレクトリをリモートまたはローカルで同期できます。Rsyncコマンドを使用すると、同期、コピー、バックアップ取得など、さまざまなデータ関連のタスクを実行できます。