Rclone: クラウドストレージのファイル同期・管理ツール
(rclone.org)- Rclone は、クラウドファイル管理をコマンドラインで処理するツールであり、Web インターフェースに依存せず 70 以上 のストレージ製品と標準転送プロトコルを扱える
rsync、cp、mv、mountのような馴染みある Unix 風の操作をクラウド向けに提供し、シェルパイプライン・--dry-run・スクリプト・API 自動化までサポートする- 転送中に タイムスタンプとチェックサム を維持し、帯域制限・不安定な接続・クォータ環境でも最後に正常転送された地点から再開できる
- ローカル・クラウド・仮想ファイルシステムを Windows、macOS、Linux、FreeBSD で ディスクのようにマウント し、SFTP・HTTP・WebDAV・FTP・DLNA として提供できる
- バックアップ、復元、クラウド間移行、暗号化・圧縮・チャンク分割・ハッシュ化・統合まで 1 つのツールで処理できるため、複数のストレージサービスを併用する際に便利
クラウドファイル管理のためのコマンドラインツール
- Rclone はクラウドストレージ上のファイルを管理する コマンドラインプログラム
- クラウドベンダーが提供する Web ストレージインターフェースの代替となる高機能ツールとして使われている
- 対応対象は S3 オブジェクトストア、企業向け・個人向けファイルストレージサービス、標準転送プロトコルを含めて 70 以上
- ユーザーは Rclone を「クラウドストレージのスイスアーミーナイフ」「魔法と見分けがつかない技術」と呼んでいる
Unix 風コマンドと自動化
- Rclone は馴染みある Unix コマンドに対応するクラウド操作を提供する
rsynccpmvmountlsncdutreermcat
- 構文はシェルパイプラインをサポートし、
--dry-runによって実際の変更前に処理内容を確認できる - コマンドライン実行だけでなく、スクリプトや API からも利用できる
- サードパーティ開発者は Rclone のコマンドラインや API を活用して、バックアップ、復元、GUI、業務プロセス向けソリューションを構築している
データ保護と転送の安定性
- 転送中に タイムスタンプ を保持し、常にチェックサムを検証する
- 制限された帯域幅、断続的な接続、クォータのある環境でも、最後に正常転送されたファイルから再開できる
- check コマンドでファイル整合性を確認できる
- 可能な場合は サーバー側転送 を使ってローカル帯域幅の使用を減らし、ローカルディスクを経由せずにプロバイダー間転送を行う
- 転送関連機能には次が含まれる
- MD5、SHA1 ハッシュによるファイル整合性確認
- ファイルタイムスタンプの保持
- いつでも再開可能な処理
- 異なるクラウドプロバイダー間のネットワーク転送
- ローカルディスクへのマルチスレッドダウンロード
バックアップ・復元・マイグレーションのシナリオ
- クラウドストレージにファイルを バックアップ し、必要に応じて暗号化する
- クラウドストレージからファイルを 復元 し、必要に応じて復号する
- クラウド上のデータを別のクラウドサービスやローカルへミラーリングできる
- データをクラウドへ移行したり、クラウドストレージベンダー間で移したりできる
- 複数の暗号化・キャッシュ・異種クラウドストレージをディスクのようにマウントする
- lsf、ljson、size、ncdu でクラウドストレージ上のデータを分析・集計できる
- Union により、複数のローカルまたはクラウドファイルシステムを 1 つのように見せられる
ファイル操作とサービス提供
- Copy は新規または変更されたファイルをクラウドストレージにコピーする
- Sync は一方向でディレクトリを同一の状態にする
- Bisync は 2 つのディレクトリを双方向に同期する
- Move は検証後にローカルファイルを削除しながらクラウドストレージへ移動する
- Check はハッシュと欠落・追加ファイルを確認する
- Mount はクラウドストレージをネットワークディスクとしてマウントする
- Serve はローカルまたはリモートのファイルを HTTP、WebDAV、FTP、SFTP、DLNA で提供する
- Web ベース GUI は実験的機能
マウントと仮想バックエンド
- ローカル、クラウド、仮想ファイルシステムを Windows、macOS、Linux、FreeBSD でディスクとして マウント する
- 同じファイルシステムを SFTP、HTTP、WebDAV、FTP、DLNA として提供できる
- 仮想バックエンド はローカル・クラウドファイルシステムをラップして追加機能を適用する
対応プロバイダーとインストール
- 対応プロバイダーには Amazon S3、Backblaze B2、Box、Dropbox、Google Cloud Storage、Google Drive、Microsoft Azure Blob Storage、Microsoft OneDrive、Proton Drive、SFTP、SMB/CIFS、WebDAV、ローカルファイルシステムなどが含まれる
- WebDAV や S3 のような標準プロトコルベースの他のプロバイダーでも、そのまま動作する場合が多い
- Rclone は rsync に着想を得た成熟した オープンソース ソフトウェアであり、Go で書かれている
- Ubuntu、Debian、Fedora、Brew、Chocolatey の公式リポジトリに Rclone が含まれている
- 最新版は rclone.org からダウンロード する方法が推奨される
- 関連リンク
1件のコメント
Hacker News のコメント
rclone が本当に好き。昔の寄付ページに「rclone は愛情で作っているプロジェクトなのでお金は必要ないが、妻に花を買う足しにしてくれたら本当にありがたい」というような文言があったと記憶している
ただ素敵な人だと感じたし、今では rclone にフルタイムで取り組めるようになったと聞いてうれしい。今もやりがいのある仕事であってほしい
archive.org で当時のページを見つけたが、記憶よりさらに心温まる内容だった:
“Rclone is a pure open source for love-not-money project. However I’ve had requests for a donation page and coding rclone does take me away from something else I love - my wonderful wife.”
“So if you would like to send a donation, I will use it to buy flowers (and other pretty things) for her which will make her very happy.”
https://web.archive.org/web/20180624105005/https://rclone.or...
rclone は クラウドストレージをローカルディスクのようにマウントすることもできるので、特に Kubernetes で使いやすい
同じフォルダにファイルが多い場合、ドライブのように使うと読み書き速度はそれほど速くないが、プロジェクトでクラウドストレージを素早く簡単に活用する方法ではある
場所ごとの エンドツーエンド暗号化も可能で、例えばマウントされたドライブに入れるすべてのファイルが、暗号化された状態で Dropbox の
/fooフォルダに書き込まれる。Dropbox や S3 のようなプロバイダがまだネイティブなエンドツーエンド暗号化に対応していない点を考えると便利全体として rclone は手元に置いておくとよいツールで、本当に多くのユースケースを解決してくれる
例えば自分の Pi4 は rclone FTP サーバとして Dropbox を内部ネットワークに公開し、別の FTP サーバでネットワークプリンタがスキャンファイルを保存できるようにしている。同じ機器で、家族や親しい友人のクラウドストレージ自動バックアップも rclone で動かしている。自分の内部ネットワークでは rclone はほとんど救世主だ
デスクトップとノートPCで Google Drive をマウントして使っているが、ノートPCでは OS がドライブをローカルと見なし、rclone がネットワークエラーでタイムアウトしないのが問題になる。Wi-Fi に接続されていない状態でアプリケーションがドライブを読み書きしようとすると、永遠に固まる。例えば XFCE で Thunar のウィンドウを開いたままだと、UI の大半がロックされることがある
確認してみたら FUSE だった
Insync もいまいちだし Google Drive もいまいちだが、毎日依存する用途なら、ファイルのローカルコピーとローカル・サーバ間の即時同期は必須だと感じる。特にインターネット接続が不安定なときはそうだ
もちろん、クライアント側暗号化に対応するためにサービス側で特別なことをする必要はあまりないのだが
クライアント側暗号化向けには、暗号化された S3 クライアントまで別にある: https://docs.aws.amazon.com/amazon-s3-encryption-client/late...
自分が好きな rclone の活用法は rclone ncdu: https://rclone.org/commands/rclone_ncdu/
ほとんどのクラウド容量プロバイダは、各フォルダやサブフォルダが実際にどれだけ容量を使っているかを表示してくれないが、そんなとき rclone ncdu がぴったりはまる
rclone を毎日使っている。場合によっては sshfs の代わりになった
ホームサーバの
$Archive共有を rsync.net に送り込み、自分の Google アカウント、妻、母、父、子どもたちのアカウントから写真を$Archiveに取り込んでいる。別々の$WORK用クラウドアカウント3つも$Archiveに集約してから rsync.net に送っているこれは本当に 最高級のツールだ
https://rclone.org/commands/rclone_mount/
現在 SSHFS には活発かつ定期的に貢献している人がおらず、既知の問題もいくつかある
https://github.com/libfuse/sshfs#development-status
バックアップ用途なら Restic も見ておく価値がある。rclone と Restic は併用すると非常に相性がよい
https://www.bobek.cz/blog/2020/restic-rclone/
幸い、この問題を解決する https://github.com/creativeprojects/resticprofile がある
誰かがどんな状況でも自分の判断が世界最高で、他人は間違っていると仮定するようなアプローチは嫌いだ
私は自分が何をしているか分かっているし、バックアップを暗号化したくない非常に正当な理由がある
Restic はデフォルトではバックアップを暗号化しつつ、
--do-not-encryptのようなスイッチを許可することもできたはずだ開発者たちの傲慢さには驚くし、だから Restic は使わないつもりだ。とても良いバックアップソリューションなので、なおさら残念だ
Borg を試すほうがよい
複数のマシンは Restic でローカルサーバーに毎時バックアップし、そのバックアップを rclone で毎日 S3 に同期している
こうすると読み書き操作の数が減り、復元が速くなり、S3 へのアクセス権を持つマシンを1台に限定できる
https://github.com/gilbertchen/duplicacy
Rclone は多くの ストレージバックエンド をサポートしており、任意のストレージバックエンドを暗号化できる crypt バックエンドも提供している
https://rclone.org/overview/
https://rclone.org/crypt/
公式サイトで常に チェックサム検証 を行うと堂々とうたっている点が気に入っている
以前、どれほど多くのツールがこのステップを飛ばしているのかを見て驚いたことがある。もちろん遅くはなるが、クラウドストレージ間で同期する状況なら、チェックサムを本当に確認したいケースである可能性が高い
誰かがオープンソースクライアントを見て Proton Drive API をリバースエンジニアリング し、Rclone プラグインを作った
現在 Linux で Proton Drive を使う唯一の方法だ
Rclone は魔法のようなツールで、さまざまな用途に使ってきた
最後に確認したときは AWS SDK を使っていないか、Go のバージョンに制約があったため、
.aws/configのすべての設定を使えるわけではなかったただ、多機能ツールなので、すべてのバックエンド機能をサポートしていないのはある程度理解できる
ドキュメントには、キャッシュのようなメンテナンスされていない機能や実験的機能に関する警告が多い。警告自体は妥当だが、具体的な制約を明確に示しているわけではない
Rclone は本当に気に入っている。技術に詳しくない人たちがコンシューマー/ビジネス向けクラウドに大量のデータを置いていて、それを何とかサーバーに取り込んで追加処理しなければならないときに 貴重なツール だ
データ量が多く、自宅のインターネット環境がよくない場合は、クラウド間の直接転送にも優れている。ネットワークの良いサーバーに rclone を入れて tmux 上で実行すれば、自分のコンピューターが起動していなくても処理は続く
nohup /usr/bin/rclone ... &>/dev/null &このように実行してからログアウトしても実行は続く