
最近旅行の記事ばかり投稿しておりましたが、遊んでばかりいる訳ではなく、お仕事もいろいろと考えながら、ブログタイトルにある第2の人生をうまく構築するために進めています。。久しぶりに技術系の投稿です。
利用しているクラウドストレージを整理することにしました。それに伴い、そこへ預けていた大量のデータをローカルストレージにバックアップする必要が出てきました。
クラウドストレージのバックアップをとることを思った経緯
クラウドストレージはとても便利で、長く使っていると相当なデータをクラウドストレージ側に預けています。
ふと思ったのが、なかなかないことではありますが、仮に私が何かしらのサービスポリシーに引っかかってアカウントロックされデータにアクセスできなくなった場合、
何かしらの理由でサービス側でデータが紛失、サービスが使えなくなった場合、などなど非常に困る状況になるな、ということでした。
(とある国の突然の方針変更などで突然データにアクセスできなくなることが0とは言えない最近のご時世ではないかと)
当然バックアップなどやってくれているのは認識しておりますが、クラウドストレージだけに大事なデータがあるのは何かあったときにヤバイのではないかと思っていました。
クラウドストレージ間(例えば、Google Drive のデータを iCloud Drive にバックアップするなど)でも良いのですが、今回はローカルストレージにバックアップをとることにしました。
ツール探し
Linux サーバなどであれば、rsync や scp などでデータを移行することができますが、クラウドストレージでは使えません。
最悪手作業でというものもありますが、数GB、場合によっては数十GB、にもなってきますと、データ転送時のエラーも頻発します。
また、クラウドストレージ側で Zip などで圧縮してから持ってくる方法もありますが、持ってきた Zip ファイルを解凍する際にエラーで解凍できないということもデータ容量が大きくなってくると普通に発生します。
クラウドストレージサービス側でバックアップの仕組みを用意していてくれたりもしますが、纏めて処理した際にうまくいった試しがないのは私だけでしょうか。。
現在クラウドストレージに預けているファイルには、子供の小さい頃の動画ファイルも結構置いておいてあり、 その性質上とっておくものを限定するということでもできませんので、とりあえず置いてあるものは全てもってきたいという状況です。
動画のようなサイズの大きなファイルも多く、ディレクトリ構造も維持したまま、確実かつ効率的にデータを移行できるツールを探していたところ、
rclone というツールを見つけ、なかなか良さそうでしたのでこちらを使うことにしました。

「"rsync for cloud storage"」と銘打たれており、まさにその名の通りの機能を備えています。多くのクラウドストレージサービスに対応しており、 今回はクラウドストレージには、OneDrive を使用しました。
rclone の便利な点
実際に使ってみて感じた rclone の便利な点は以下の通りです。
- 多くのクラウドストレージに対応: OneDrive はもちろん、Google Drive, S3, Dropbox など、主要なクラウドストレージに幅広く対応しています。
- コマンドラインでシンプルに操作:
rclone copy <source> <destination>のような直感的なコマンドで操作できます。 - 強力なデータ整合性チェック: コピー中にエラーが発生しても自動でリトライしてくれます。また、コピー後には
rclone checkコマンドで、転送元と転送先のデータが完全に一致しているかを確認できるため、安心してデータを任せられます。 - 豊富なオプション: フィルタリング機能を使えば、特定のファイルだけをコピー対象にしたり、除外したりと、柔軟な設定が可能です。
使い方
基本的な使い方は非常にシンプルです。まず、rclone config コマンドで、接続したいクラウドストレージの設定を行います。
対話形式で設定が進むので、ドキュメントを見ながら進めればそこまで迷うことない・・・という話を聞いたのですが、私の環境では少し迷いました。
私の場合は One Drive でも複数のアカウントを使っているのですが、この場合、接続先にどれを使えばよいのか迷う部分もありましたが、1つづつ試しながら目的とする接続を作成することができました。
インストール
まずはインストールですが、私の環境は Mac ですので、以下で実行しました。
$ brew install rclone
環境毎のインストール方法は以下にあります。
インストールがうまくいったら、クラウドストレージの接続先の設定を行います。
接続先の設定
コマンドラインで対話的に進めていきます。
❯ rclone config 2025/08/26 20:17:46 NOTICE: Config file "/Users/user-a/.config/rclone/rclone.conf" not found - using defaults No remotes found, make a new one? n) New remote s) Set configuration password q) Quit config n/s/q>
新しい設定を作成しますので、n をタイプしてエンターです。
接続先の名称を求められますので、自分で分かり易い名前を決めておきます。
n/s/q> n Enter name for new remote. name> onedrive-priv
使用するクラウドストレージを選択します。いやぁ、ホントにいろいろなストレージがサポートされています。
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 S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, Exaba, FlashBlade, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Mega, Minio, Netease, Outscale, OVHcloud, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, Selectel, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu, Zata and others \ (s3) 5 / Backblaze B2 \ (b2) 6 / Better checksums for other remotes \ (hasher) 7 / Box \ (box) ...(snip)... 19 / S3 Compliant Storage Providers including AWS, Alibaba, ArvanCloud, Ceph, ChinaMobile, Cloudflare, DigitalOcean, Dreamhost, Exaba, FlashBlade, GCS, HuaweiOBS, IBMCOS, IDrive, IONOS, LyveCloud, Leviia, Liara, Linode, Magalu, Mega, Minio, Netease, Outscale, OVHcloud, Petabox, RackCorp, Rclone, Scaleway, SeaweedFS, Selectel, StackPath, Storj, Synology, TencentCOS, Wasabi, Qiniu, Zata and others \ (s3) 20 / Dropbox \ (dropbox) 21 / Google Cloud Storage (this is not Google Drive) \ (google cloud storage) 22 / Google Drive \ (drive) 23 / Google Photos \ (google photos) ...(snip)... 34 / Hubic \ (hubic) 35 / Mega \ (mega) 36 / Microsoft Azure Blob Storage \ (azureblob) 37 / Microsoft Azure Files \ (azurefiles) 38 / Microsoft OneDrive \ (onedrive) 39 / OpenDrive \ (opendrive) ...(snip)... 61 / iCloud Drive \ (iclouddrive) 62 / premiumize.me \ (premiumizeme) 63 / seafile \ (seafile) Storage>
ここでは、One Drive を使いますので、38 を選択します。
Storage> 38
client_id、client_secret を入力するプロンプトが続きますが、そのままブランクでエンターだけ押して進めます。
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>
リージョンの選択がきます。ここもブランクでエンター(デフォルトになるので global)で進めます。
Option region. Choose national cloud region for OneDrive. Choose a number from below, or type in your own value of type string. Press Enter for the default (global). 1 / Microsoft Cloud Global \ (global) 2 / Microsoft Cloud for US Government \ (us) 3 / Microsoft Cloud Germany (deprecated - try global region first). \ (de) 4 / Azure and Office 365 operated by Vnet Group in China \ (cn) region>
この後もデフォルトで進めます。
Option tenant. ID of the service principal's tenant. Also called its directory ID. Set this if using - Client Credential flow Enter a value. Press Enter to leave empty. tenant> 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> 2025/08/23 15:02:38 NOTICE: Make sure your Redirect URL is set to "http://localhost:53682/" in your custom config. 2025/08/23 15:02:38 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=Edddddddddddddddddddp 2025/08/23 15:02:38 NOTICE: Log in and authorize rclone for access 2025/08/23 15:02:38 NOTICE: Waiting for code...
ブラウザを使って OneDrive アカウントの認証を行い、アクセストークンの取得が実施されます。 ブラウザでの認証がうまくいくと、ブラウザからコマンドラインに戻れます。
この後もデフォルトで進めます。
2025/08/23 15:02:53 NOTICE: Got code Option config_type. Type of connection Choose a number from below, or type in an existing value of type string. 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
私が迷ったのはこの後で、ここで4つの選択肢がでてきたのですが、この情報だけは正直どれが正解かわからず・・・(環境によってここは変わります。) 最終的に 4 が正解とわかりました。
Option config_driveid. Select drive you want to use Choose a number from below, or type in your own value of type string. Press Enter for the default (bddddddddddk-hVdddddddddddddddddddddddddddddddddddddddddddddddddaP). 1 / ODCMetadataArchive (personal) \ (bddddddddddk-hVdddddddddddddddddddddddddddddddddddddddddddddddddaP) 2 / Addddddd-dddd-dddd-dddd-dddddddddd90 (personal) \ (b!zGJF9fWPuk-hVdddddddddddddddddddddddddddddddddddddddddddddddddkN) 3 / Bundles_b89xxxxxxxxxxxxxxxxxxxxxxxxxxxd7 (personal) \ (BddddddddddddddB) 4 / OneDrive (personal) \ (BddddddddddddddB) config_driveid>
4 で進めます。
config_driveid> 4
Drive OK?
Found drive "root" of type "personal"
URL: https://onedrive.live.com?cid=BddddddddddddddddddddddddddddddddddddddddddddddddddddY
y) Yes (default)
n) No
y/n>
Configuration complete.
Options:
- type: onedrive
- token: {"access_token":"...","token_type":"Bearer","refresh_token":"...","expiry":"2025-08-23T16:02:52.70706+09:00","expires_in":...}
- drive_id: BDDDDDDDDDDDDDDB
- drive_type: personal
Keep this "onedrive-priv" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
onedrive-priv onedrive
アクセストークンの取得に成功し、接続名として設定したonedrive-privを使ってこの後クラウドストレージにアクセスできるようになります。
実際に使ってみます
設定が完了すれば、あとは copy や sync コマンドを実行するだけです。
基本的なコマンドは以下のような感じです。
# OneDrive の "MyData" フォルダをローカルの "/backup/onedrive" にコピーする例 rclone copy onedrive-priv:MyData /backup/onedrive
onedrive-priv で先程設定した接続先を指定して、:(コロン)の後にクラウドストレージ側のディレクトリ名を指定します。
スペースの後は、コピー先のここではローカルのディレクトリを指定しています。
--progress オプションをつければ、転送状況をリアルタイムで確認することもできます。
まずは試しにちゃんと動作しているか以下のコマンドでクラウドストレージのファイルを確認してみます。
$ rclone ls onedrive-priv:Movies/Dev 493982696 ArrrrCamp 2013 - Web applications with Ruby (not Rails)-0.MP4 278980374 Bearfeeder-DPPIntroToScalaBASEMeeting115.mp4
通常の ls ですね。2ファイル確認でき、問題なさそうです。
いろいろなオプションがあり、ダウンロードするファイル、ローカル環境にも最適なオプションはいろいろありそうですが、まずは以下のコマンドで問題なく全ファイルダウンロード(ローカルへのコピー)ができました。
$ rclone copy onedrive-priv:Movies/Family \
/Volumes/MyPassport/Backup/onedrive-202508/Family \
--progress \
--fast-list \
--transfers=16 \
--checkers=32 \
--multi-thread-streams=6 \
--multi-thread-cutoff=32M \
--buffer-size=16M
以下のような最終結果となっており、問題なく全てのファイルが転送されていることが確認できます。
2025/08/24 04:03:52 ERROR : Attempt 3/3 succeeded Transferred: 92.004 GiB / 92.004 GiB, 100%, 2.137 MiB/s, ETA 0s Checks: 467 / 467, 100%, Listed 1492
念のため、ホントにそうなのか、確認する場合にはチェック用のコマンドも用意されています。
$ rclone check onedrive-priv:Movies/Family \ /Volumes/MyPassport/Backup/onedrive-202508/Family \ --one-way --size-only \ --progress \ --combined=/tmp/rclone-check.txt
コンソールに出力される結果です。問題ないようです。
2025/08/24 11:45:04 NOTICE: Local file system at /Volumes/MyPassport/Backup/onedrive-202508/Family: 0 differences found 2025/08/24 11:45:04 NOTICE: Local file system at /Volumes/MyPassport/Backup/onedrive-202508/Family: 332 matching files Transferred: 0 B / 0 B, -, 0 B/s, ETA - Checks: 332 / 332, 100%, Listed 673 Elapsed time: 3.2s
まとめ
クラウドストレージからのデータバックアップに rclone を利用した内容を記載しました。
rclone は、豊富なクラウドストレージに対応している点、コマンドラインでの手軽な操作性、そして何よりデータ整合性を担保する堅牢なチェック機能に魅力を感じました。
単なるファイルコピーだけでなく、エラー時の自動リトライやコピー後の検証機能まで備わっているため、安心して任せることができます。
ファイル数が多くても、容量が大きくても、コマンドを起動してほったらかしておけば、頼んだミッションを正確にコミットしてくれます。
なお、本記事での例はクラウドストレージからローカルへのコピー(バックアップ)を扱っていましたが、クラウドストレージ間でのバックアップにも利用できます。 (例えば、OneDrive のデータを Google Drive にコピーする、など。)
クラウドストレージの整理や移行、定期的なバックアップを考えている方にとって、非常に心強い味方となるツールではないでしょうか。