GNU/Linux >> Linux の 問題 >  >> Cent OS

Rsyncを使用してファイルを送信およびダウンロードする方法

Rsyncは「リモート同期」の略です。 Rsyncは、SCPのような他の代替手段と比較した場合、ファイルを転送するための最も堅牢で用途が広く柔軟なツールです。これは、バックアップや復元などの日常的なサーバー操作、および2台以上のローカルマシンとリモートマシン間の一般的なファイル操作に最適なツールです。この記事では、rsyncを使用してファイルを送信およびダウンロードする方法を紹介します。

1。 Rsyncの構文

次の構文は、表示されるrsyncコマンドの最も一般的な形式である可能性があります。

# rsync [options] /source /destination

これらは一般的に使用されるオプションです

-v, --verbose increase verbosity, provide more information about what the command is doing
-q, --quiet suppress non-error messages
-c, --checksum skip based on checksum, not mod-time and size
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-r, --recursive recurse into directories
-u, --update skip files that are newer on the receiver
-d, --dirs transfer directories without recursing
-p, --perms preserve permissions
-E, --executability preserve executability
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-o, --owner preserve owner (super-user only)
-g, --group preserve group
-D same as --devices --specials
-t, --times preserve modification times
-S, --sparse handle sparse files efficiently
-n, --dry-run perform a trial run with no changes made
-W, --whole-file copy files whole (w/o delta-xfer algorithm)
-x, --one-file-system don't cross filesystem boundaries
-B, --block-size=SIZE force a fixed checksum block-size
-e, --rsh=COMMAND specify the remote shell to use
-P same as --partial --progress
と同じです

たとえば、/var/www/html/からファイルを同期します /opt/backup/へ 。これを完了するには、次のコマンドを実行できます:

# rsync -Wav /var/www/html/ /opt/backup/

上記のコマンドを分解してみましょう。オプションはアーカイブ(-a)です。 、rsyncにファイルを再帰的にコピーし、ファイルをコピーするときにグループとユーザーの所有権を保持するように指示します。このオプションは、実際にはoption (-rlptgoD)の組み合わせです。 これには、再帰的な転送、ファイルの変更時間の転送、ファイルのアクセス許可、シンボリックリンクなどが含まれます。

この(-W) オプションの場合、デルタ転送アルゴリズムは使用されず、代わりにファイル全体がそのまま送信されます。これは、送信元と宛先の両方がローカルパスとして指定されている場合のデフォルトですが、バッチ書き込みオプションが有効になっていない場合に限ります。

詳細オプション(-v) rsyncに、端末に対して実行していることに関する詳細情報を出力するように指示します。

2。 Rsyncを使用してファイルをダウンロードする方法

前のステップでは、rsyncを使用してある場所から別の場所にファイルをコピーする方法を学びました。次に、rsyncを使用してリモートサーバーからファイルをダウンロードします。基本的に、コマンドは同じです。転送ではSSH接続が使用されるため、ソースをリモートサーバーのSSHユーザー名に置き換えるだけで済みます。

# rsync [-options] user@SOURCE_IP_ADDRESS:/SOURCE /DESTINATION

たとえば、サーバーからIPアドレス1.2.3.4のディレクトリをダウンロードまたはコピーしたいとします。 5.6.7.8の別のサーバーへ 。 /var/www/html/をダウンロードまたはコピーするとします。 /home/master/

5.6.7.8でサーバーにログインし、このコマンドを実行する必要があります。

# rsync -Wav -e 'ssh -p 7022' [email protected]:/var/www/html/ /home/master/

ご覧のとおり、オプション(-e)を追加しました。このオプションは、使用するリモートシェルと、接続するポートを指定するために使用されます。リモートサーバーのSSHはポート7022でリッスンしているため、「ssh-p7022」として追加できます。リモートサーバーのSSHポートがデフォルトのポート22である場合は、rsyncコマンド構文のオプションとして「-essh」を使用できます。

最後の1つは、ソースの末尾のスラッシュに注意してください( /var/www/html/ )。 htmlディレクトリ自体を含まないhtmlディレクトリの内容のみをダウンロードまたはコピーする場合は、末尾にスラッシュを追加することを忘れないでください。末尾にスラッシュを追加しない場合、コマンドはhtmlディレクトリとその内容をコピーします。

3。 Rsyncを使用してファイルを送信する方法

今回は、送信元がローカルであるのに対し、宛先はリモートシステムになるため、ファイルの送信と見なされます。 rsyncを使用してファイルを送信するために使用するアカウントと異なる場合は、リモートユーザーアカウントを指定できます。次に、上記のユーザーアカウントには、リモートサーバーでの書面によるアクセス許可が必要です。

コマンドは次のようになります

# rsync [-options] /SOURCE user@DESTINATION_IP_ADDRESS:/DESTINATION
# rsync -Wav -e 'ssh -p 7022' /home/master/ [email protected]:/var/www/html/

もちろん、リモートサーバーで参照しているユーザーアカウントには、宛先ディレクトリに書き込むための適切な権限が必要です。

それでおしまい。 rsyncを使用してファイルを送信およびダウンロードする方法を学習しました。利用可能なオプションの詳細については、ターミナルでmanrsyncを実行できます。コマンドはrsyncマニュアルを表示します。

もちろん、Linux VPSホスティングサービスのいずれかを使用している場合は、rsyncを使用してファイルを送信およびダウンロードする必要はありません。その場合は、専門のLinux管理者にrsyncを使用してファイルを送信およびダウンロードするように依頼するだけです。 24時間年中無休でご利用いただけます。リクエストはすぐに処理されます。

PS。 rsyncを使用してファイルを送信およびダウンロードする方法に関するこの投稿が気に入った場合は、下のボタンを使用してソーシャルネットワーク上の友達と共有するか、コメントセクションに返信を残してください。ありがとう。


Cent OS
  1. SSH経由でファイルをダウンロードおよびアップロードする方法

  2. golangを使用してSFTPサーバーからファイルを一覧表示、アップロード、およびダウンロードする方法

  3. rsyncを使用してファイルを同期する

  1. TarとOpenSSLを使用してファイルとディレクトリを暗号化および復号化する方法

  2. wget vs curl:wget と curl を使用してファイルをダウンロードする方法

  3. wgetを使用してディレクトリ全体とサブディレクトリをダウンロードする方法は?

  1. rsyncを使用してデータ転送でファイルとディレクトリを除外する方法

  2. LinuxでsFTPを使用してファイル/ディレクトリをアップロードまたはダウンロードする方法

  3. 1つのコマンドでtarファイルをダウンロードおよび抽出する方法