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

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

関連記事

Git

Git でユーザー名とメールアドレスを設定する方法(全体用とプロジェクト用)

Git で、ユーザー名とメールアドレスを設定する方法です。(1) 全体の設定方法と、(2) プロジェクト毎の設定方法の2つを紹介します。 目次1. プロジェクトをまたいだ全体の設定(グローバル, gl …

Windows

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

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

WSL

WSL (または WSL 2) から外付けストレージ側にアクセスできない場合の対処方法

WSL (または WSL 2) で外付けストレージ側に移動できない場合の対処方法を紹介します。

Windows

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

MSYS2 を使って、Windows 7 にターミナル環境を構築しました。その時のおおまかなポイントを書きたいと思います。 MSYS2というのは、Windows上にUNIXライクな環境を導入するソフト …

Windows

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

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