rclone(rsync for cloud storage)の入手
最近知ったのですが、rsyncのストレージサービス対応というコンセプトらしいので試してみました。ストレージサービスの引っ越しに役立ちそうじゃないですか =)
対応しているストレージサービスは以下のとおり。
- Google Drive
- Amazon S3
- Openstack Swift / Rackspace cloud files / Memset Memstore
- Dropbox
- Google Cloud Storage
- The local filesystem
この中にOpenstack SwiftってのがあってこれはConoHaのオブジェクトストレージに対応しているんじゃまいか、ということで調査しました。
golangで開発されているとのことでしたが、開発環境を揃える必要はなく、直接バイナリを入手して使うことが出来ます。今回はバイナリをダウンロードしました。
Windows版の他に、Mac、Linux、*BSD、Plan 9が用意されています。LinuxにはARMが用意されているのでもしかしてRaspberry Piとかにもそのまま使えるかもしれませんね。
設定ファイルの作成 (OpenStack Swift)
OpenStack Swift用の設定ファイルを作成します。
作成にあたり、APIキー等が必要になります。新ConoHaのオブジェクトストレージで遊ぶ (swiftコマンド編)の「APIユーザーの作成とオブジェクトストレージの有効化」を参考にしてください。
rclone configで指示に従って入力していきます。
- Swift - rclone
入力例
今回、remoteサービス名は「conoha」にしました。特に決まりはないので自由に設定してください =)
C:\tmp>rclone config [Enter]
2015/07/17 15:10:50 Failed to load config file C:\Users\mcn/.rclone.conf - using defaults
No remotes found - make a new one
n) New remote
q) Quit config
n/q> n [Enter]
name> conoha [Enter] (適当な名前で大丈夫 =))
What type of source is it?
Choose a number from below
1) swift
2) s3
3) local
4) google cloud storage
5) dropbox
6) drive
type> 1 [Enter] (ConoHaはOpenStack Swiftなので1を選択します)
User name to log in.
user> ************ [Enter] (ユーザー名を入力します)
API key or password.
key> *************** [Enter] (APIユーザー用のパスワードを入力します)
Authentication URL for server.
Choose a number from below, or type in your own value
* Rackspace US
1) https://auth.api.rackspacecloud.com/v1.0
* Rackspace UK
2) https://lon.auth.api.rackspacecloud.com/v1.0
* Rackspace v2
3) https://identity.api.rackspacecloud.com/v2.0
* Memset Memstore UK
4) https://auth.storage.memset.com/v1.0
* Memset Memstore UK v2
5) https://auth.storage.memset.com/v2.0
auth> https://identity.tyo1.conoha.io/v2.0 [Enter] (API Auth URLを入力します)
Tenant name - optional
tenant> ************ [Enter] (テナント名を入力します)
Region name - optional
region> [Enter] (特に設定しませんでした)
Remote config
--------------------
[conoha]
user = ************
key = ***************
auth = https://identity.tyo1.conoha.io/v2.0
tenant = ************
region =
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y [Enter]
Current remotes:
Name Type
==== ====
conoha swift
e) Edit existing remote
n) New remote
d) Delete remote
q) Quit config
e/n/d/q> q [Enter]
rcloneコマンドで遊ぼう =)
リモートのパラメータは「remote名:コンテナ名」で指定します。
ローカル → リモート(ConoHa)
rsyncですので、ローカルとリモートで差分があった分だけ同期します。swift uploadだと問答無用で全部アップロードするので、何らかの工夫が必要ですね。オブジェクト名もそのまま使われています。
- ローカル → リモートの同期 : rclone sync [ローカルのディレクトリ名] [リモート名:コンテナ名]
使用例
ローカルのディレクトリ「.\tdnet_test」に保存してある3つのファイルをリモートサーバー「conoha」のコンテナ名「conoha_test」に同期しています。実質copyになっていますけど =)。
C:\tmp>rclone sync tdnet_test conoha:conoha_test [Enter]
2015/07/17 15:18:22 Swift container conoha_test: Building file list
2015/07/17 15:18:22 Swift container conoha_test: Waiting for checks to finish
2015/07/17 15:18:22 Swift container conoha_test: Waiting for transfers to finish
2015/07/17 15:18:49 Waiting for deletions to finish
Transferred: 6202763 Bytes ( 216.83 kByte/s)
Errors: 0
Checks: 0
Transferred: 3
Elapsed time: 27.9361969s
C:\tmp>rclone ls conoha:conoha_test [Enter]
528228 140120150507464080.pdf
713974 140120150515479565.pdf
4960561 140120150602400929.pdf
Transferred: 0 Bytes ( 0.00 kByte/s)
Errors: 0
Checks: 0
Transferred: 0
Elapsed time: 602.2327ms
C:\tmp>swift list conoha_test [Enter]
140120150507464080.pdf
140120150515479565.pdf
140120150602400929.pd
リモート(旧ConoHa) → リモート(新ConoHa)
使用例
旧ConoHaに置いてあったコンテナ「tdnet」を新ConoHaに同期しました。旧ConoHaのremote名は「conoha_old」とし、設定ファイルを作成しています。
旧ConoHaに置いてあったコンテナ「tdnet」を新ConoHaに同期しました。旧ConoHaのremote名は「conoha_old」とし、設定ファイルを作成しています。
C:\tmp>rclone sync conoha_old:tdnet conoha:tdnet [Enter]
2015/07/17 15:39:37 Swift container tdnet: Building file list
2015/07/17 15:39:37 Swift container tdnet: Waiting for checks to finish
2015/07/17 15:39:38 Swift container tdnet: Waiting for transfers to finish
2015/07/17 15:39:39 Waiting for deletions to finish
Transferred: 264639 Bytes ( 75.77 kByte/s)
Errors: 0
Checks: 0
Transferred: 1
Elapsed time: 3.4107942s
0 件のコメント:
コメントを投稿