rcloneはコマンドラインを使用して、様々なクラウドストレージサービス間でファイルを同期したり管理したりするためのオープンソースのツールです。Google Drive、Amazon S3、Dropbox、OneDriveなど、多数のクラウドストレージプロバイダーをサポートしています。Linux、Windows、macOSなど、複数のプラットフォームで利用可能です。80以上ありました。
- 1Fichier
- Akamai Netstorage
- Alibaba Cloud (Aliyun) Object Storage System (OSS)
- Amazon Drive (See note)
- Amazon S3
- Backblaze B2
- Box
- Ceph
- China Mobile Ecloud Elastic Object Storage (EOS)
- Arvan Cloud Object Storage (AOS)
- Citrix ShareFile
- Cloudflare R2
- DigitalOcean Spaces
- Digi Storage
- Dreamhost
- Dropbox
- Enterprise File Fabric
- Fastmail Files
- FTP
- Google Cloud Storage
- Google Drive
- Google Photos
- HDFS
- Hetzner Storage Box
- HiDrive
- HTTP
- ImageKit
- Internet Archive
- Jottacloud
- IBM COS S3
- IDrive e2
- IONOS Cloud
- Koofr
- Levvia Object Storage
- Liara Object Storage
- Linkbox
- Linode Object Storage
- Mail.ru Cloud
- Memset Memstore
- Mega
- Memory
- Microsoft Azure Blob Storage
- Microsoft Azure Files Storage
- Microsoft OneDrive
- Nextcloud
- OVH
- Blomp Cloud Storage
- OpenDrive
- OpenStack Swift
- Oracle Cloud Storage Swift
- Oracle Object Storage
- ownCloud
- pCloud
- Petabox
- PikPak
- premiumize.me
- put.io
- Proton Drive
- QingStor
- Qiniu Cloud Object Storage (Kodo)
- Quatrix by Maytech
- Rackspace Cloud Files
- rsync.net
- Scaleway
- Seafile
- Seagate Lyve Cloud
- SeaweedFS
- SFTP
- Sia
- SMB / CIFS
- StackPath
- Storj
- Synology
- SugarSync
- Tencent Cloud Object Storage (COS)
- Uptobox
- Wasabi
- WebDAV
- Yandex Disk
- Zoho WorkDrive
- The local filesystem
主な特徴としては以下のような点が挙げられます。
- データ同期: ローカルファイルとクラウドストレージ間、または異なるクラウドストレージサービス間でのデータ同期を簡単に行うことができます。
- バックアップ: ファイルを定期的にバックアップするために使用でき、コマンドラインオプションを通じて細かい設定が可能です。
- ファイル転送の最適化: 転送速度の向上や、転送データ量の削減を目的とした機能が含まれています。
- セキュリティ: データを暗号化して転送および保存することができます。
- 多機能性: コピー、移動、削除、サイズ確認、リスト表示など、多くの操作をサポートしています。
rcloneを使用する基本的な流れは以下の通りです。
- インストール: 公式ウェブサイトからrcloneをダウンロードして、お使いのオペレーティングシステムに合わせてインストールします。
- 設定:
rclone config
コマンドを使用して、使用したいクラウドストレージプロバイダーの設定を行います。これには、APIキーの入力やアクセス許可の設定が含まれることがあります。 - 操作の実行: ファイルの同期、コピー、移動など、必要な操作をコマンドラインから実行します。例えば、
rclone copy /path/to/local/folder remote:folder
はローカルのフォルダからクラウド上のフォルダへファイルをコピーします。
rcloneの使用にあたっては、コマンドライン操作に慣れることが重要ですが、非常に強力で柔軟なツールであるため、一度習得すれば多くの場面で役立ちます。各コマンドの詳細やオプションについては、rcloneの公式ドキュメントやヘルプコマンド(rclone help
)を参照すると良いでしょう。
実際に確認してみましょう。最初は、わかりやすいようにWindows版をダウンロードします。
ファイルをダウンロードしたら解凍して、適当なフォルダに配置しておきます。コマンドを使用するのでCドライブ直下にフォルダを作成し、解凍したいくつかのファイルがこのフォルダにあるようにしておきます。以下のコマンドでクラウドストレージに設定をします。確認するクラウドストレージはyandex diskにします。
rclone config
何もないはずなので、nを選択し接続をします。
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/ s/ q> n
次にこの設定に名前(エイリアス)を付けます。testという名前にしました。
Enter name for new remote.
name> test
たくさん表示されます。Yandex Diskを使用したいので53またはyandexと入力します。
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
1 / 1Fichier
\ (fichier)
2 / Akamai NetStorage
\ (netstorage)
3 / Alias for an existing remote
\ (alias)
4 / Amazon Drive
\ (amazon cloud drive)
5 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Minio, Netease, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu and others
\ (s3)
6 / Backblaze B2
\ (b2)
7 / Better checksums for other remotes
\ (hasher)
8 / Box
\ (box)
9 / Cache a remote
\ (cache)
10 / Citrix Sharefile
\ (sharefile)
11 / Combine several remotes into one
\ (combine)
12 / Compress a remote
\ (compress)
13 / Dropbox
\ (dropbox)
14 / Encrypt/Decrypt a remote
\ (crypt)
15 / Enterprise File Fabric
\ (filefabric)
16 / FTP
\ (ftp)
17 / Google Cloud Storage (this is not Google Drive)
\ (google cloud storage)
18 / Google Drive
\ (drive)
19 / Google Photos
\ (google photos)
20 / HTTP
\ (http)
21 / Hadoop distributed file system
\ (hdfs)
22 / HiDrive
\ (hidrive)
23 / ImageKit.io
\ (imagekit)
24 / In memory object storage system.
\ (memory)
25 / Internet Archive
\ (internetarchive)
26 / Jottacloud
\ (jottacloud)
27 / Koofr, Digi Storage and other Koofr-compatible storage providers
\ (koofr)
28 / Linkbox
\ (linkbox)
29 / Local Disk
\ (local)
30 / Mail.ru Cloud
\ (mailru)
31 / Mega
\ (mega)
32 / Microsoft Azure Blob Storage
\ (azureblob)
33 / Microsoft Azure Files
\ (azurefiles)
34 / Microsoft OneDrive
\ (onedrive)
35 / OpenDrive
\ (opendrive)
36 / OpenStack Swift (Rackspace Cloud Files, Blomp Cloud Storage, Memset Memstore, OVH)
\ (swift)
37 / Oracle Cloud Infrastructure Object Storage
\ (oracleobjectstorage)
38 / Pcloud
\ (pcloud)
39 / PikPak
\ (pikpak)
40 / Proton Drive
\ (protondrive)
41 / Put.io
\ (putio)
42 / QingCloud Object Storage
\ (qingstor)
43 / Quatrix by Maytech
\ (quatrix)
44 / SMB / CIFS
\ (smb)
45 / SSH/SFTP
\ (sftp)
46 / Sia Decentralized Cloud
\ (sia)
47 / Storj Decentralized Cloud Storage
\ (storj)
48 / Sugarsync
\ (sugarsync)
49 / Transparently chunk/split large files
\ (chunker)
50 / Union merges the contents of several upstream fs
\ (union)
51 / Uptobox
\ (uptobox)
52 / WebDAV
\ (webdav)
53 / Yandex Disk
\ (yandex)
54 / Zoho
\ (zoho)
55 / premiumize.me
\ (premiumizeme)
56 / seafile
\ (seafile)
Storage> 53
クライアントIDやクライアントシークレットは何も入力せずEnterキーを押します。ブラウザを使用するか問われたらyを選択します。
Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id>
Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret>
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use web browser to automatically authenticate rclone with remote?
- Say Y if the machine running rclone has a web browser you can use
- Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> y
すると、ブラウザが起動してyandexのログイン画面が表示されるので指示に従います。うまくいけば以下のように表示されるはずです。

Success!
All done. Please go back to rclone.

ここからはコマンドでストレージを操作します。
rclone lsd test:
rclone mkdir test:dic1
rclone ls test:dic1
rclone sync --interactive c:\temp1 test:dic1
1. rclone lsd test:
このコマンドは、test:
リモート(rcloneで設定したストレージサービスのエイリアス)のルートディレクトリにあるディレクトリ(フォルダ)の一覧を表示します。lsd
は “list directories” の略で、ファイルは表示されず、ディレクトリ(フォルダ)のみがリストされます。
2. rclone mkdir test:dic1
mkdir
コマンドは、指定されたリモートストレージ上に新しいディレクトリ(この例ではdic1
という名前)を作成します。この例ではtest:
リモートにdic1
ディレクトリを作成しています。
3. rclone ls test:dic1
ls
コマンドは、指定されたディレクトリ内のファイルをリストします。このコマンドは、test:dic1
ディレクトリ内のファイル一覧を表示します。ただし、dic1
が新しく作成されたばかりで、何もアップロードされていない場合は、何も表示されない可能性があります。
4. rclone sync --interactive c:\temp1 test:dic1
sync
コマンドは、ソース(この例ではローカルのc:\temp1
ディレクトリ)とデスティネーション(test:dic1
ディレクトリ)間でファイルを同期します。--interactive
オプションは、ファイルを削除する前にユーザーの確認を求めるようにします。このコマンドにより、c:\temp1
内のすべてのファイルとディレクトリがtest:dic1
にコピーされ、両方の場所の内容が一致するようになります。なお、sync
はデスティネーションにのみ存在するファイルを削除するため、使用する際は注意が必要です。
これらのコマンドを使って、rcloneを用いた基本的なファイル操作や同期のプロセスを説明しました。特にsync
コマンドは便利であるため、実行前にはオプションや影響をよく理解しておくことが重要です。
Windows版のrcloneではGUIを介してストレージの認証が行えるため、比較的簡単に設定を完了できます。しかし、コマンドラインベースでの設定、特にリモートのクラウドストレージにアクセスする場合には、APIトークンやアクセスキーなどの認証情報が必要になることがあります。
rcloneの設定プロセスでは、以下のステップが含まれます。
rclone config
の実行: このコマンドを実行すると、rcloneの設定ウィザードが開始されます。- ストレージプロバイダーの選択: サポートされているストレージプロバイダーのリストから、設定したいプロバイダーを選択します。
- 認証情報の入力: プロバイダーによっては、APIキー、アクセストークン、クライアントID、クライアントシークレットなどの情報を入力する必要があります。この情報は、プロバイダーの開発者コンソールやAPI管理ページで取得できます。
- 認証プロセス: 認証情報を入力した後、rcloneはブラウザを開いて認証プロセスを完了させることがあります。このステップでは、ユーザーがクラウドストレージアカウントにログインし、rcloneにアクセス権を与える必要があります。
コマンドラインでの設定は少し複雑に感じられるかもしれませんが、正確に認証情報を入力し、指示に従えば、ほとんどのユーザーが成功することができます。また、一度設定を完了すれば、その後はコマンドラインから簡単にファイルの同期やバックアップを行うことができるようになります。
OneDriveでも確認します。今度は、SSH接続したubuntu22.04でrcloneをインストールします。最新版をインストールしたいのでダウンロードするファイルのリンクを取得しておきます。
Ubuntuでsudo apt install rclone
を使用してrcloneをインストールすると、リポジトリのバージョンが古い場合があります。このため、最新版をインストールするには、rcloneの公式ウェブサイトから直接.debパッケージをダウンロードしてインストールする方法が推奨されます。
sudo dpkg -i
コマンドはローカルにダウンロードされた.debパッケージファイルのインストールに使用されます。しかし、直接URLを指定してdpkg -i
コマンドを実行することはできません。代わりに、まずwget
やcurl
コマンドを使って.debファイルをダウンロードし、次にdpkg -i
でインストールする必要があります。以下に手順を示します。
- .debファイルのダウンロード:
wget https://downloads.rclone.org/v1.65.2/rclone-v1.65.2-linux-amd64.deb
上記のURLは例であり、rcloneのダウンロードページから最新または必要なバージョンの正確なリンクを取得してください。 - .debパッケージのインストール:
sudo dpkg -i
rclone-v1.65.2-linux-amd64.deb
このコマンドはダウンロードしたパッケージファイル名に置き換えてください。
もし依存関係に関するエラーが発生した場合は、sudo apt -f install
を実行して、不足している依存関係を解決できます。
途中までは先と同じです。ブラウザを使用するか問われたら、今度はnを選択します。
rclone config
Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
1 / Microsoft Cloud Global
\ (global)
2 / Microsoft Cloud for US Government
\ (us)
3 / Microsoft Cloud Germany
\ (de)
4 / Azure and Office 365 operated by Vnet Group in China
\ (cn)
region> 1
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Use web browser to automatically authenticate rclone with remote?
- Say Y if the machine running rclone has a web browser you can use
- Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.
y) Yes (default)
n) No
y/n> n
Option config_token.
For this to work, you will need rclone available on a machine that has
a web browser available.
For more help and alternate methods see: https://rclone.org/remote_setup/
Execute the following on the machine with the web browser (same rclone
version recommended):
rclone authorize “onedrive”
Then paste the result.
Enter a value.
config_token>
SSH接続を使用してリモートマシンでrcloneを設定している場合で、そのリモートマシンにウェブブラウザがインストールされていない(またはアクセスできない)場合には、n
を選択するのが正しい選択です。
この選択をすることで、rcloneはウェブブラウザを使用せずに認証を進める方法を提案します。具体的には、ローカルマシン(ウェブブラウザが使用可能なマシン)でrclone authorize "onedrive"
のようなコマンドを実行し、その結果として表示される認証トークンをリモートマシンのconfig_token>
プロンプトに入力する必要があります。先ほどWindows版をインストールしたので、これを使用します。表示されたrclone authorize "onedrive"
とコマンドプロンプトで入力するとなにやら長い文字列が表示されます。
C:\rclone>rclone authorize “onedrive”
2024/02/15 20:08:09 NOTICE: If your browser doesn’t open automatically go to the following link: http://127.0.0.1:53682/auth?state=IRGcdby8T8u_pPJa-dX19Q
2024/02/15 20:08:09 NOTICE: Log in and authorize rclone for access
2024/02/15 20:08:09 NOTICE: Waiting for code…
2024/02/15 20:08:59 NOTICE: Got code
Paste the following into your remote machine —>
{“access_token”:”EwBwA8l6BAAUs5+HQn0N+h2FxWzLS31ZgQVuHsYAAfGHM/cK5wvWkfFzU9A0X5/1DqjxLSL0mbfQUVqLEvvawlE3b8J83A30TS/+Y
省略
Cj!zbiplyDpWjrZNwdrIhmgUknYApZ6BnTBKbD4sxj1w6t3EoZ8iQz2SVJwyuTN9MpAzqO6jcIX2G6mGIYB0BddwwAoVqpn8VES26Dinu3aGWk3EgnWx5brFu3jumAiFBaAVF8ADBIjmno4Hjvwfwfd5hpgJFyV2dEWYfUyt1gMQqdrTy4k6″,”expiry”:”2024-02-15T21:09:01.627858+09:00″}
<—End paste
このプロセスは、リモートマシン上でrcloneを設定している際に、クラウドストレージプロバイダ(この例ではOneDrive)への認証を行うために必要です。認証トークンをローカルマシンで取得し、それをリモートマシンのrclone設定に手動で入力することで、リモートマシンからクラウドストレージへのアクセス権を確立できます。
この表示されたトークン情報は、One Driveへのアクセスを認証するために使用する認証トークンです。これをリモートマシン(SSH接続されたCUI環境)でrcloneの設定に適用する必要があります。以下の手順で進めます。
- 上記で表示されたJSON形式のトークン情報(
{"access_token":"EwBwA8l6...
から始まる部分)を全てコピーします。省略された部分も含めて、表示された全ての情報が必要です。 - SSHで接続されたリモートマシンに戻り、rcloneの設定プロセスを続けている場所にこのトークン情報をペーストします。具体的には、
config_token>
のプロンプトが表示された場所に、コピーしたトークン情報を貼り付けてEnterキーを押します。
config_token> {“access_token”:”EwBwA8l6BAAUs5+HQn0N+h2FxWzLS31ZgQVuHsYAAfGHM/cK5wvWkfFzU9Cj!zbiplyDpWjrZNwdrIhmgUknYApZ6BnTBKbD4sxj1w6t3EoZ8iQz2SVJwyuTN9MpAzqO6jcIX2G
省略
zHxUPv4ZbPxnVZS!U8xGZKE4LRajj5brFu3jumAiFBaAVF8ADBIjmno4Hjvwfwfd5hpgJFyV2dEWYfUyt1gMQqdrTy4k6″,”expiry”:”2024-02-15T21:09:01.627858+09:00″}
Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).
1 / OneDrive Personal or Business
\ (onedrive)
2 / Root Sharepoint site
\ (sharepoint)
/ Sharepoint site name or URL
3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
\ (url)
4 / Search for a Sharepoint site
\ (search)
5 / Type in driveID (advanced)
\ (driveid)
6 / Type in SiteID (advanced)
\ (siteid)
/ Sharepoint server-relative path (advanced)
7 | E.g. /teams/hr
\ (path)
config_type> 1
Option config_driveid.
Select drive you want to use
Choose a number from below, or type in your own string value.
Press Enter for the default (10aeefd6b862db5f).
1 / (personal)
\ (10aeefd6b862db5f)
config_driveid> 1
Drive OK?
Found drive “root” of type “personal”
URL: https://onedrive.live.com/?cid=10aeefd6b862db5f
y) Yes (default)
n) No
y/n> y
Configuration complete.
これにより、リモートマシン上のrcloneがOne Driveにアクセスするための認証情報を得られ、設定が完了します。この認証情報を使用して、One Driveのファイルやフォルダにアクセスするコマンドを実行できるようになります。
メモ
例:rclone copy oned:youtube /home/mamushi/test
rclone copy
コマンドを使用する場合、宛先のディレクトリ(この例では /home/mamushi/test
)が存在しない場合でも、rcloneはそのディレクトリを自動的に作成してからコピー操作を行います。つまり、oned:youtube
から /home/mamushi/test
へのコピー操作を実行する際、test
ディレクトリが事前に存在しなくても問題ありません。
このコマンドは、OneDrive(oned
とラベル付けされたリモート)の youtube
ディレクトリから、ローカルシステムの /home/mamushi/test
ディレクトリへファイルをコピーします。もし /home/mamushi/test
ディレクトリが存在しなければ、rcloneはこのディレクトリを作成し、その後ファイルのコピーを行います。
rcloneは非常に柔軟で便利なツールであり、このようなディレクトリの自動作成機能により、ユーザーはファイルの同期やバックアップをより簡単に行うことができます。もしコピー先のディレクトリ構造が複雑であっても、rcloneは必要な全ての中間ディレクトリを自動的に作成します。
新しいディレクトリに直接コピーする際にrcloneが自動でディレクトリを作成する場合、rcloneはそのディレクトリに対して適切なパーミッションを設定し、コピー操作をスムーズに行うことができます。一方で、既存のディレクトリにコピーしようとした場合にパーミッションのエラーが発生するのは、そのディレクトリが持つパーミッション設定がrcloneの操作と競合している可能性があります。
パーミッションのエラーは、特にUNIX系のオペレーティングシステム(LinuxやmacOSなど)でよく見られます。これは、ファイルシステムのセキュリティモデルの一部として、ファイルやディレクトリが特定のユーザーやグループによる読み書きや実行を許可するかどうかを制御するためです。rcloneを使用して既存のディレクトリにアクセスしようとする際には、次の点を確認することが重要です。
- ディレクトリのパーミッション:
ls -l
コマンドを使用して、ディレクトリのパーミッションを確認します。必要に応じて、chmod
コマンドを使用してパーミッションを変更することができます。 - 操作を行うユーザー: rcloneが実行されるユーザーが、コピー先のディレクトリに対して適切なアクセス権を持っているか確認します。不足している場合は、ディレクトリの所有者を変更するか、パーミッションを調整する必要があります。