1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

scpよりもrcloneの方が優れているというお話

Posted at

対象読者

以下の人が対象です。

  • 大量ファイルの転送に困っている人
  • リモート・ローカル間のファイルのやり取りに悩んでいる人

研究室の後輩やHPCを利用している人がscpを使っていて、上記のような問題で困っていることが多かったのに耐えられず書きました。

rclone

Rclone is a command-line program to manage files on cloud storage. It is a feature-rich alternative to cloud vendors' web storage interfaces. Over 40 cloud storage products support rclone including S3 object stores, business & consumer file storage services, as well as standard transfer protocols.

Rcloneはクラウドストレージ上のファイルを管理するためのコマンドラインプログラムです。クラウドベンダーのWebストレージインターフェースの代替手段として、豊富な機能を持ちます。40以上のクラウドストレージ製品(e.g. S3のオブジェクトストアやビジネス・消費者向けファイルストレージサービス)がrcloneをサポートし、標準的な転送プロトコルとしても機能します。

よく使う機能

私は以下のような機能を主に使ってます。

  1. sftpを用いたリモート/ローカル間の差分ファイル転送
  2. リモートディレクトリのマウント

これに加え、クラウドストレージも通常のリモートディレクトリと同じように扱えるのがrcloneのすごい所。
今回は、上の二点の機能について導入と使い方を解説します。

sftpを用いたリモート/ローカル間の差分ファイル転送

Usage:
  rclone copy source:path dest:path [flags]

ソースとデスティネーションにはscpコマンドと同じ要領でパスを指定します。
ただし、rclone config(後述)でホスト名のエイリアスを作成する必要があります。

rclone copyはファイルの差分を見てコピーしているので、中途再開で時間の節約ができます。
また、セキュアなファイル転送プロトコル(sftp)を用いているので安心感があります。

リモートディレクトリのマウント

Usage:
  rclone mount remote:path /path/to/mountpoint [flags]

オプション--vfs-cache-mode writesを付けないと、ファイルを編集したときに怒られます。

一応、誤解を広めないために付け加えておくと、VSCodeにもリモートディレクトリをマウントできる機能はあります。rclone mountの場合、ファイルの編集が反映されるまでに数秒のラグが生じるデメリットがあります。

rcloneの使い方

上のリンクから自分の環境にあったバイナリをダウンロードしてください。rcloneが存在するディレクトリにPATHを通したらrclone configで初期設定をします。ローカル環境がWindowsでsftpを使う場合は、chocoなどのパッケージマネージャを通してWinFspを事前にインストールしてください。

まず、こんな画面が出てきます。

Current remotes:

Name                 Type
====                 ====

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

CLI上でインタラクティブな設定操作ができるのが、rcloneの大きな特徴。
日本語には対応していないですが、ユーザ名やアクセストークンなどを手順通りに設定すれば大丈夫です。
sftpだと4つくらい設定項目があります。

Configuration complete.
Options:
- type: sftp
- host: ************
- user: foouser
- pass: *** ENCRYPTED ***
Keep this "hogehost" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

これにて設定完了。

scpとrcloneの違い

scp rclone
リモート/ローカル転送
暗号化通信
差分コピー
クラウドストレージ対応
ディレクトリのマウント
OS対応状況 ほぼ全部 ほぼ全部

大容量のファイル(1TB)をリモートにアップロードする時に、差分コピーができる機能はとても重宝します。
余談ですが、組織のポリシーでrsyncのポートが禁止されている可能性があるので、rcloneはrsyncの代替手段にもなり得ます。(rsyncのようにファイルサーバを立ち上げる機能はrcloneにはありません。)

まとめ

scpよりもrcloneの方が多機能で安全なので、rcloneを使ってファイル転送で楽をしましょう。
rclone copyrclone mountを覚えておけばそんなに困りません。

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?