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

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

関連記事

WSL

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

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

Evernote

Evernote の Template 機能 2018

2018年9月 Evernote に追加された「テンプレート」機能について紹介します。 目次1. Evernote のテンプレート機能2. テンプレートの保存方法その1: オンラインギャラリーからテン …

Windows

Cmder (または ConEmu) を使う際にいつも変更している設定項目

Cmder (または ConEmu) を使う際に、私が変更している設定項目を紹介します。 Cmder は、Windows で使えるターミナルエミュレータ(コンソールエミュレータ)ソフトウェアです。Cm …

WSL

WSL 2 の Kali Linux で Win-KeX (kali-win-kex) を使う場合の注意点

目次1. はじめに2. Win-KeX の使い方と注意点(1) Kali Linux の導入(2) kali-win-kex パッケージのインストール(3) 注意事項注意点 その1注意点 その2(4) …

Web Programming

Webブラウザ上でHTML/CSS/JavaScriptを書いて試すことができるサービスの比較

目次はじめにサービス比較CodePenjsdo.itJSFiddleObservableまとめ はじめに Webブラウザ上で、HTML/CSS/JavaScript を書き、それをその場で実行したり保 …