GNU/Linux >> Linux の 問題 >  >> Linux

SSH経由でRsyncを使用してファイルを転送する方法

ネットワーク上のシステム間でファイルを転送する場合、LinuxおよびUnixユーザーは多くのツールを自由に使用できます。

データ転送で最も一般的なプロトコルはSSHとFTPです。 FTPは非常に人気がありますが、ファイルを転送する最も安全な方法であるSSHを常に使用することをお勧めします。

scpなど、SSHを介したファイル転送専用のツールがあります。 およびsftp しかし、それらのどれもrsyncのすべての機能を備えていません 提供します。 rsync データのミラーリング、増分バックアップ、システム間でのファイルのコピーなどに使用できます。

このチュートリアルでは、rsyncを使用してファイルをコピーする方法を説明します SSH経由。

要件#

  • rsync ユーティリティは、宛先システムとソースシステムの両方にインストールする必要があります。インストールされていない場合は、ディストリビューションのパッケージマネージャーを使用してインストールできます:

    UbuntuとDebian:

    sudo apt install rsync

    CentOSとFedora:

    sudo yum install rsync
  • リモートコンピュータへのSSHアクセス。

  • rsyncを実行しているユーザー コマンドとリモートSSHユーザーには、ファイルの読み取りと書き込みを行うための適切な権限が必要です。

rsyncの使用 SSH経由でファイルを転送するには#

rsyncを使用 、リモートサーバーとの間でSSHを介してファイルとディレクトリを転送できます。

rsyncを使用してファイルを転送するための一般的な構文 は次のとおりです:

Local to Remote: rsync [OPTION]... -e ssh [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... -e ssh [USER@]HOST:SRC... [DEST]

SRCの場所 ソースディレクトリ、DEST 宛先ディレクトリUSER リモートSSHユーザー名とHOST はリモートSSHホストまたはIPアドレスです。

新しいバージョンのrsyncは、デフォルトのリモートシェルとしてSSHを使用するように構成されているため、-e sshを省略できます。 オプション。

たとえば、単一のファイルを転送するには/opt/file.zip ローカルシステムから/var/www/へ IP 12.12.12.12のリモートシステム上のディレクトリ 実行します:

rsync -a /opt/file.zip [email protected]:/var/www/

-a オプションはアーカイブモードを表し、ディレクトリを再帰的に同期し、特別なデバイスとブロックデバイスを転送し、シンボリックリンク、変更時間、グループ、所有権、およびアクセス許可を保持します。

リモートマシンにパスワードなしのSSHログインを設定していない場合は、ユーザーパスワードの入力を求められます。

ファイルがリモートサーバーに存在する場合、ファイルは上書きされます。別の名前でファイルを保存する場合は、新しい名前を指定します。

rsync -a /opt/file.zip [email protected]:/var/www/file2.zip

リモートからローカルマシンにデータを転送するには、リモートの場所を送信元として使用し、ローカルの場所を宛先として使用します。

rsync -a [email protected]:/var/www/file.zip /opt/

rsyncを使用してディレクトリを転送する SSH経由でのファイル転送と同じです。

rsyncであることを知っておくことが重要です 末尾にスラッシュ/を付けてソースディレクトリに異なる処理を与えます 。ソースディレクトリの末尾にスラッシュがある場合、rsync ソースディレクトリの内容のみを宛先ディレクトリにコピーします。末尾のスラッシュを省略すると、ソースディレクトリが宛先ディレクトリ内にコピーされます。

たとえば、ローカルの/opt/website/images/を転送するには /var/www/images/へのディレクトリ 次のように入力するリモートマシンのディレクトリ:

rsync -a /home/linuxize/images/ [email protected]:/var/www/images/

--deleteを使用します ローカルディレクトリとリモートディレクトリを同期する場合のオプション。ソースディレクトリにファイルが存在しない場合、宛先ディレクトリ内のファイルが削除されるため、このオプションを使用する場合は注意が必要です。

rsync -a --delete /home/linuxize/images/ [email protected]:/var/www/images/

リモートホストのSSHがデフォルトの22以外のポートでリッスンしている場合 、-eを使用してポートを指定します オプション。たとえば、SSHがポート3322でリッスンしている場合 使用するもの:

rsync -a -e "ssh -p 3322" /home/linuxize/images/ [email protected]:/var/www/images/

大量のデータを転送する場合は、rsyncを実行することをお勧めします スクリーンセッション内でコマンドを実行するか、-Pを使用します rsyncに指示するオプション 転送中に進行状況バーを表示し、部分的に転送されたファイルを保持するには:

rsync -a -P /home/linuxize/images/ [email protected]:/var/www/images/

結論#

rsyncの使用方法を説明しました SSH経由でファイルとディレクトリをコピーして同期します。

rsyncを使用してファイルまたはディレクトリを除外する方法もお読みください。 。

ご不明な点がございましたら、お気軽にコメントをお寄せください。


Linux
  1. rsyncを使用してファイルをバックアップします

  2. SCP と Rsync を使用して Linux でファイルを転送する方法

  3. ssh 経由でディレクトリを比較する方法

  1. UNIX / Linux で SSH を使用して Rsync をセットアップする方法 (パスワードなしの rsync)

  2. SSH 経由でデバイスを使用しますか?

  3. UNIX / Linux で SSH を使用してパスワードなしで Rsync をセットアップする方法は?

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

  2. Rsyncを選択的に消音する方法は?

  3. rsync を使用してデフォルトでファイルを除外するにはどうすればよいですか?