Французский с нуля, Интересное о французских словах
目次:
ネットワーク上のシステム間でファイルを転送することになると、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端末