アンドロイド

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

Французский с нуля, Интересное о французских словах

Французский с нуля, Интересное о французских словах

目次:

Anonim

ネットワーク上のシステム間でファイルを転送することになると、LinuxユーザーとUnixユーザーは自由に使えるツールをたくさん持っています。

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

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

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

必要条件

  • 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… -e ssh… HOST:DEST Remote to Local: rsync… -e ssh HOST:SRC…

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

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

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

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

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

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

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

リモートからローカルマシンにデータを転送するには、ソースとしてリモートロケーションを使用し、デスティネーションとしてローカルロケーションを使用します。

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

SSHを介した rsync したディレクトリの転送は、ファイルの転送と同じです。

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 コマンドを実行するか、転送中に進行状況バーを表示して部分的に転送されたファイルを保持するように rsync に指示する -P オプションを使用することをお勧めします:

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

結論

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

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

ご質問がある場合は、コメントをお気軽にお寄せください。

rsync端末