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

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

関連記事

Anki

「AnkiWebに問題が発生しました」というエラーについて

「AnkiWebに問題が発生しました」というエラーが発生したときの話です。

Anki

Anki のデッキ(単語帳)は、基本的に階層構造にはしていません

Anki のデッキ(単語帳)は、基本的に階層構造にはしないという方針について説明します。

Anki

Anki: 次回の間隔[日]を算出するページを作りました

Ankiアプリにおける、次回の間隔[日]を算出するページを作りました。

WSL

WSL 2 で Docker を使うパターン

目次1. はじめに1-1. Docker についての基礎知識1-2. 前提2. WSL 2 ディストロ(Ubuntu) + パッケージのDocker を利用するパターン3. WSL 2 ディストロ(U …

Windows

Google の「バックアップと同期」で同期エラーになった時の対応

目次1. はじめに2. 同期エラーの状況3. 対応方法4. おわりに 1. はじめに ローカルのデータを、Google ドライブと同期させる「バックアップと同期」というアプリケーションがあります。 最 …