Tools

scp の代わりとしての rsync コマンドとそのオプション

投稿日:2019年4月24日 更新日:

1. はじめに

scp コマンドというのは、ssh コマンドを内部で使って、ローカルホストとリモートホスト間でファイルをコピーするためのコマンドです。ssh コマンドは SSH という暗号化された安全なプロトコルを使って通信を行うコマンドなので、scp コマンドも安全であるということになっていました。

しかし、OpenSSH 8.0登場、scpよりsftpやrsyncプロトコルの利用を という記事にあるように、現在では scp コマンドが推奨されないようですので、その代わりに使える rsync コマンドとそのオプションを紹介します。

rsync コマンドもローカルホストとリモートホスト間でファイルをコピーするためのコマンドですが、どちらかというとバックアップ目的で使う印象がありましたし(前回からの差分だけコピーとかできます)、デフォルトでは暗号化が行われません。そのため 「ちょっとしたコピー」であれば scp コマンドを使う人が多かったのではないでしょうか。rsync でもオプションを使えば ssh の暗号化が使えますので、多少面倒ですが今後はこちらを使いましょう。

2. scp の代わりとしての rsync コマンドとそのオプション

rsync コマンドを使って、ローカルにあるファイルをリモートサーバーにコピーする場合のコマンドは以下となります。
(rsync コマンドのオプションはいろいろあるのですが、便利そうなのを付けておきました)

$ rsync -avzP -e <ローカルのファイルパス> <ユーザー名>@<サーバーのホスト名 or IPアドレス>:<パス>

SSHのポート番号を指定したい場合は、以下となります。

$ rsync -avzP -e "ssh -p <ポート番号>" <ローカルのファイルパス> <ユーザー名>@<サーバーのホスト名 or IPアドレス>:<パス>

リモートサーバー上のファイルをローカルにコピーする場合は、「ローカルのファイルパス」と「<ユーザー名>@<サーバーのホスト名 or IPアドレス>:<パス>」の位置を逆にします。

上記で指定しているオプションは以下となります。

 
オプション 説明
-a
  • アーカイブモードでコピーします。
  • -rlptgoD を指定したのと同じ効果になります。これはファイルの各属性を維持してコピーされたり、再帰的にコピーされたりといった、コピーする上で便利なオプションがまとめて指定できるオプションです。
-v
  • 処理している内容についての情報を表示します。
-z
  • データを圧縮して転送します。
-P
  • 進行状況を表示します。
-e
  • リモートシェルを指定します。
  • 分かりやすく言うと、遠隔地にあるサーバーにログインすることのできるコマンドを指定します。デフォルトでは ssh が指定されます。

📂-Tools

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Windows

Windows 10 のターミナル設定(MSYS2編)

MSYS2 を使って、Windows 10 にターミナル環境を構築する方法を紹介します。 MSYS2というのは、Windows上にUNIXライクな環境を導入するソフトウェアです。 現在では、Windo …

Anki

Anki: 新しい復習間隔は 0% が良い

Ankiの設定項目「新しい復習間隔」についての持論です。

Windows

WSL (Windows Subsystem for Linux) の導入と設定

本ページでは、WSL (Windows Subsystem for Linux) の導入と設定についてポイントをまとめています。

Linux

前回 ./configure を実行した時に指定したオプションを確認する

目次1. 前置き (configure, make, make install)2. config.status ファイル(1) 前回 configure を実行した時の引数を表示する(2) 前回 c …

Vim

Vim: 行番号の表示

Vim の行番号表示機能について説明します。 目次1. 前提とする環境2. 行番号表示に関する設定項目number (もしくは nu)relativenumber (もしくは rnu)3. この設定項 …