はじめに
Rsyncは、サーバー間でファイルを同期したり、FTPを必要とせずにサーバー間でファイルを移動したりするための優れた方法です。 SSHプロトコルを介して2つのサーバーを接続し、サーバー間でのデータ転送を可能にします。この記事の後半で説明するrsyncデーモンは、独自のプロトコルを使用し、指定されたポートで実行されます。以下では、基本について説明します。サーバー間でのコピー、rsyncデーモンとの間のコピー、および異なるサーバー上でのファイルの同期の維持。
前提条件
–両方にrsyncがインストールされている2台のLinuxサーバー。
–転送を開始するサーバーは、受信サーバーのSSHポート(またはrsyncデーモンに接続している場合はrsyncポート)にアクセスできる必要があります。
–ユーザーはrsyncを使用するための権限を持っている必要があります(以下の例はrootユーザーとして実行されます)。
Rsyncの基本
Rsyncは、ファイルを別のサーバーにプッシュしたり、別のサーバーからファイルをプルしたりできます。 2つの違いは構文にあります。最初にローカルファイルを指定すると、プッシュが開始されます。最初にリモートホストを指定すると、プルが開始されます。以下の構文の正確なタイプを見てみましょう。
rsync [-options] SOURCE [email protected]:DESTINATION
プル:
rsync [-options] [email protected]:SOURCE DESTINATION
[-options]
使用できるすべての異なるオプションです。以下の例で参照して説明します。すべてのオプションの完全なリストについては、マニュアルページを確認してください。
SOURCE
/ directory / path / to / the / file / or / directory
の略です コピーされます。
DESTINATION
/ directory / path / to / the / new / location
の略です 受信ホスト上。
[email protected]
rsyncが接続するリモートホスト上のユーザーです。
x.x.x.x
リモートホストのIPアドレスを表します。 DNSが構成されている場合は、ホスト名にすることもできます。
ここで、rsyncが接続するデフォルトのポート22の外側のポートを指定する必要があるとします。これは、オプション -e
を使用して行います。 。以下の例を参照してください( PORT
を置き換えます 接続する必要のあるポート番号を使用してください。
プッシュ:
rsync [-other options] -e 'ssh -p PORT' SOURCE [email protected]:DESTINATION
プル:
rsync [-other options] -e 'ssh -p PORT' [email protected]:SOURCE DESTINATION
簡単なファイル転送の例
まず、あるサーバーから別のサーバーへの.txtファイルのプッシュを開始します。
rsync /home/simple.txt [email protected]:/home
このコマンドは、ファイル simple.txt
をコピーします ローカルサーバーからリモートサーバーの/home
ディレクトリ。
2台のサーバー間のRsync転送。
右側では、 ls
を実行しました rsyncの前、そして実行後に再び、ファイルがコピーされたことがわかります。
プルの例を次に示します。
rsync [email protected]:/home/pullme.txt /home
ファイルpullme.txt
/ home
のリモートサーバー(x.x.x.x)にあります ディレクトリ。このコマンドは、ファイルをローカルサーバーの / home
にコピーします ディレクトリ。
この方法を使用して、指定した任意の単一ファイルをプッシュ/プルできます。それでは、ディレクトリに入りましょう。
ディレクトリファイル転送
ディレクトリの移動は簡単です。 -d
を追加します オプションで、ディレクトリのみを移動します。ディレクトリとその内容を移動する場合は、 -r
を使用します 代わりに、すべてのファイルとサブフォルダーを再帰的にコピーします。その間、 -t
に取り組みましょう オプション。このオプションは、ファイルが最後に変更された日時をコピーします。 -t
を使用する ファイルが最後に編集された日時を正確に記録するのに適しています。これらのオプションは、プッシュまたはプルで機能します。
以下の例では、 pullme.txt
を移動しました / transfer_me
にファイルします ディレクトリ。 / simple
ディレクトリも作成しました (ファイル simple.txt
が含まれています ) / transfer_me
内 。次に、 / transfer_me
をプッシュしました リモートサーバーへのディレクトリ。
rsync -rt /home/transfer_me [email protected]:/home
Rsyncディレクトリ
ご覧のとおり、リモート(受信)サーバーのフォルダーには、ローカルフォルダーが開始サーバーで実行したすべてのサブディレクトリとファイルが含まれています。
Rsyncデーモンへの接続
このセクションには、rsyncデーモンを実行しているサーバーが必要です。これらの手順をテストするには、rsyncデーモンの設定に関する記事を参照してください。
rsyncを使用した基本的なファイル/ディレクトリの転送について説明したので、rsyncデーモンへの接続について説明します。 rsyncデーモンはサーバー上で常に実行されているため、サーバーに割り当てられたrsyncデーモンディレクトリにいつでもプッシュしたり、そこからプルしたりできます。 rsyncデーモンへのプルとプッシュには2つの形式があります。
プル:
rsync [-options] rsync://[email protected][:PORT]SOURCE DESTINATION
プル(IPアドレス/ホスト名の後の二重コロンに注意):
rsync [-options] [email protected]::SOURCE DESTINATION
プッシュ:
rsync [-options] SOURCE rsync://[email protected][:PORT]DESTINATION
プッシュ(IPアドレス/ホスト名の後の二重コロンに注意):
rsync [-options] SOURCE [email protected]::DESTINATION
以下のrsyncデーモンからのプル方法を参照してください(デフォルトのrsyncデーモン接続ポートであるため、以下のポート番号873の使用は冗長です。デフォルト以外のポートを設定した場合にコマンドをフォーマットする方法を示すためにこれを含めますrsyncデーモン上):
rsync -rt rsync://[email protected]:873/files/ /home/pulledfromdaemon
Rsyncデーモンプル
ここでは、 files
モジュール名です。そのディレクトリ( pullme.txt
)内のすべてをプルしているので およびsimple.txt
)ソースのモジュール名のままにしておきます。
Rsyncとのファイルの同期
次に、ファイルを同期する方法について説明します。適切なオプションを使用して、単一のrsyncコマンドで同期を実行できます。このコマンドをスクリプトまたはcronジョブに入れて、オンデマンドまたは自動で実行できます。デーモンをプッシュ、プル、または使用している場合、コマンドは異なりますが、オプションは同じままです。
rsync -rtu --delete SOURCE [email protected]:/DESTINATION
この例では、 -rtu --delete
に注意してください。 オプション。 -r
についてはすでに説明しました および-t
オプション–再帰コピーとタイムスタンプコピー。 -u
オプションは、 SOURCE
から異なる/変更/追加されたファイルのみを更新するようにrsyncに指示します DESTINATION
へ 。オプション--delete
DESTINATION
からすべてのファイルを削除します そのSOURCE
もう持っていないかもしれません。これ(および -l </code>などの他のオプション) シンボリックリンクの場合)複数の場所にあるディレクトリをソースで最新の状態に保つことができます。
サーバー間でファイルをrsyncしたり、rsyncデーモンを使用したり、ファイルの同期を簡単に維持したりできるようになりました。このハウツーをフォローしていただきありがとうございます!その他の更新については、ここに戻って確認するか、VPSホスティングを含む当社が提供する多くのサービスをご覧ください。
VPSホスティングサービスと仮想プライベートサーバーの詳細をご覧ください。