rclone
の使用
rclone
やコマンド・ライン・インターフェース (CLI) などのツールおよびソリューションにアクセスできる場合に、IBM Cloud® Object Storage を最大限に活用します。
install rclone
rclone
ツールは、ディレクトリーの同期を維持し、ストレージ・プラットフォーム間でデータをマイグレーションするために役立ちます。 これは Go プログラムで、単一のバイナリー・ファイルとして提供されます。
クイック・スタート・インストール
- 関連するバイナリーをダウンロードします。
- アーカイブから
rclone
バイナリーまたはrclone.exe
バイナリーを解凍します。 rclone config
を実行してセットアップします。
スクリプトを使用したインストール
Linux /macOS/BSD システムに rclone
をインストールするには、以下のようにします。
curl https://rclone.org/install.sh | sudo bash
以下のように、ベータ版も使用可能です。
curl https://rclone.org/install.sh | sudo bash -s beta
インストール・スクリプトは最初にインストールされている rclone
のバージョンを検査し、現行バージョンが既に最新の場合はダウンロードをスキップします。
プリコンパイル・バイナリーからの Linux のインストール
-
バイナリーを取り出して解凍します。
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip unzip rclone-current-linux-amd64.zip cd rclone-*-linux-amd64
-
バイナリー・ファイルを適切な場所にコピーします。
sudo cp rclone /usr/bin/ sudo chown root:root /usr/bin/rclone sudo chmod 755 /usr/bin/rclone
-
以下のように資料をインストールします。
sudo mkdir -p /usr/local/share/man/man1 sudo cp rclone.1 /usr/local/share/man/man1/ sudo mandb
-
以下のように
rclone config
を実行してセットアップします。rclone config
プリコンパイル・バイナリーからの macOS のインストール
-
rclone
パッケージをダウンロードします。cd && curl -O https://downloads.rclone.org/rclone-current-osx-amd64.zip
-
ダウンロードしたファイルと
cd
を解凍したフォルダーに解凍します。unzip -a rclone-current-osx-amd64.zip && cd rclone-*-osx-amd64
-
以下のように、
rclone
を$PATH
に移動し、プロンプトが出されたらパスワードを入力します。sudo mkdir -p /usr/local/bin sudo mv rclone /usr/local/bin/
ディレクトリーが存在する場合でも、
mkdir
コマンドは安全に実行できます。 -
残っているファイルを削除します。
cd .. && rm -rf rclone-*-osx-amd64 rclone-current-osx-amd64.zip
-
以下のように
rclone config
を実行してセットアップします。rclone config
IBM COS へのアクセスの構成
-
rclone config
を実行し、新規リモートを示すn
を選択します。No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n
-
以下のように、構成の名前を入力します。
name> <YOUR NAME>
-
「s3」ストレージを選択します。
Choose a number from below, or type in your own value 1 / Alias for a existing remote \ "alias" 2 / Amazon Drive \ "amazon cloud drive" 3 / Amazon S3 Complaint Storage Providers (Dreamhost, Ceph, Minio, IBM COS) \ "s3" 4 / Backblaze B2 \ "b2" [snip] 23 / http Connection \ "http" Storage> 3
-
S3 ストレージ・プロバイダーとして IBM COS を選択します。
Choose the S3 provider. Enter a string value. Press Enter for the default ("") Choose a number from below, or type in your own value 1 / Amazon Web Services (AWS) S3 \ "AWS" 2 / Ceph Object Storage \ "Ceph" 3 / Digital Ocean Spaces \ "Digital Ocean" 4 / Dreamhost DreamObjects \ "Dreamhost" 5 / IBM COS S3 \ "IBMCOS" [snip] Provider>5
-
False を入力して資格情報を入力します。
Get AWS credentials from the runtime (environment variables or EC2/ECS meta data if no env vars). Only applies if access_key_id and secret_access_key is blank. Enter a boolean value (true or false). Please Enter for the default ("false"). Choose a number from below, or type in your own value 1 / Enter AWS credentials in the next step \ "false" 2 / Get AWS credentials from the environment (env vars or IAM) \ "true" env_auth>false
-
アクセス・キーおよびシークレットを入力します。
AWS Access Key ID - leave blank for anonymous access or runtime credentials. access_key_id> <> AWS Secret Access Key (password) - leave blank for anonymous access or runtime credentials. secret_access_key> <>
-
IBM COS のエンドポイントを指定します。 パブリック IBM COS の場合、提供されているオプションから選択します。 エンドポイントについて詳しくは、エンドポイントおよびストレージ・ロケーションを参照してください。
Endpoint for IBM COS S3 API. Choose a number from below, or type in your own value 1 / US Cross Region Endpoint \ "s3.us.cloud-object-storage.appdomain.cloud" 2 / US Cross Region Dallas Endpoint \ "s3-api.dal.us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 3 / US Cross Region Washington DC Endpoint \ "s3-api.wdc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 4 / US Cross Region San Jose Endpoint \ "s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net" 5 / US Cross Region Private Endpoint \ "s3-api.us-geo.objectstorage.service.networklayer.com" [snip] 34 / Toronto Single Site Private Endpoint \ "s3.tor01.objectstorage.service.networklayer.com" endpoint>1
-
IBM COS ロケーション制約を指定します。 ロケーション制約は、エンドポイントと一致する必要があります。 エンドポイントについて詳しくは、エンドポイントおよびストレージ・ロケーションを参照してください。
1 / US Cross Region Standard \ "us-standard" 2 / US Cross Region Vault \ "us-vault" 3 / US Cross Region Cold \ "us-cold" 4 / US Cross Region Flex \ "us-flex" 5 / US East Region Standard \ "us-east-standard" [snip] 32 / Toronto Flex \ "tor01-flex" location_constraint>1
-
ACL を指定します。
public-read
とprivate
のみがサポートされます。Canned ACL used when creating buckets or storing objects in S3. Choose a number from below, or type in your own value 1 "private" 2 "public-read" acl>1
-
表示されている構成を確認し、「remote」を受け入れて保存してから、終了します。 構成ファイルは次のようになります。
[YOUR NAME] type = s3 Provider = IBMCOS access_key_id = xxx secret_access_key = yyy endpoint = s3.us.cloud-object-storage.appdomain.cloud location_constraint = us-standard acl = private
コマンド・リファレンス
バケットの作成
rclone mkdir RemoteName:newbucket
使用可能なバケットのリスト
rclone lsd RemoteName:
バケットのコンテンツのリスト表示
rclone ls RemoteName:newbucket
ローカルからリモートへのファイルのコピー
rclone copy /Users/file.txt RemoteName:newbucket
リモートからローカルへのファイルのコピー
rclone copy RemoteName:newbucket/file.txt /Users/Documents/
リモートでのファイルの削除
rclone delete RemoteName:newbucket/file.txt
リスト・コマンド
いくつかの関連リスト・コマンドがあります。
ls
は、オブジェクトのサイズとパスのみをリストします。lsl
は、オブジェクトの変更時刻、サイズ、およびパスのみをリストします。lsd
は、ディレクトリーのみをリストします。lsf
は、オブジェクトとディレクトリーを解析しやすい形式でリストします。lsjson
は、オブジェクトとディレクトリーを JSON 形式でリストします。
rclone sync
sync
操作は、ソースと宛先を同一にし、宛先のみを変更します。 同期では、サイズと変更時刻、または MD5SUM によるテストを行って、変更されていないファイルは転送されません。 宛先は、必要に応じてファイルの削除を含め、ソースと一致するように更新されます。
この操作はデータ損失の原因となる可能性があるため、最初に --dry-run
フラグを指定してテストし、コピーおよび削除される内容を正確に確認してください。
いずれかの時点でエラーが発生した場合、宛先のファイルは削除されません。
ディレクトリー自体ではなく、ディレクトリーの 内容 が同期されます。 source:path
がディレクトリーの場合、コピーされるのは、ディレクトリー名と内容ではなく、source:path
の内容です。 詳しくは、copy
コマンドの詳細な説明を参照してください。
dest:path
が存在しない場合は作成され、source:path
の内容がそこに入れられます。
rclone sync source:path dest:path [flags]
複数の場所からの rclone
の同時使用
以下のように、出力に別のサブディレクトリーを選択すると、複数の場所から同時に rclone
を使用できます。
Server A> rclone sync /tmp/whatever remote:ServerA
Server B> rclone sync /tmp/whatever remote:ServerB
同じディレクトリーに sync
する場合は、rclone copy
を使用できます。そうしないと、2 つのプロセスによってお互いのファイルが削除されることがあります。
Server A> rclone copy /tmp/whatever remote:Backup
Server B> rclone copy /tmp/whatever remote:Backup
--backup-dir=DIR
sync
、copy
、または move
を使用する場合、上書きまたは削除されたファイルは、元の階層のこのディレクトリーに移動されます。
--suffix
を設定すると、移動されたファイルにサフィックスが追加されます。 ディレクトリーに同じパス (サフィックスが追加された後) のファイルがある場合、そのファイルは上書きされます。
使用中のリモートはサーバー・サイドの移動またはコピーをサポートしている必要があり、同期の宛先と同じリモートを使用する必要があります。 バックアップ・ディレクトリーは、宛先ディレクトリーとオーバーラップしてはなりません。
rclone sync /path/to/local remote:current --backup-dir remote:old
sync
を /path/to/local
に remote:current
しますが、更新または削除されたファイルはすべて、remote:old
に保管されます。
rclone
をスクリプトから実行する場合、--backup-dir
に渡すディレクトリー名として今日の日付を使用して古いファイルを保管することも、今日の日付を指定した --suffix
を渡すこともできます。
rclone
での日次同期
バックアップのスケジュールは、バックアップの自動化にとって重要です。 これを行う方法は、プラットフォームによって異なります。 Windows ではタスク・スケジューラーを使用できます。一方、MacOS および Linux では crontab を使用できます。
ディレクトリーの同期
Rclone
は、ローカル・ディレクトリーをリモート・コンテナーと同期し、すべてのファイルをコンテナー内のローカル・ディレクトリーに保管します。 Rclone
は、構文 rclone sync source destination
を使用します。ここで、 source
はローカル・フォルダー、 destination
は IBM COS 内のコンテナーです。
rclone sync /path/to/my/backup/directory RemoteName:newbucket
既に宛先が作成されている場合がありますが、そうでない場合は、上記の手順を使用して新しいバケットを作成できます。
ジョブのスケジュール
ジョブをスケジュールする前に、初期アップロードが実行され、完了していることを確認してください。
Windows
-
コンピューター上の任意の場所に
backup.bat
というテキスト・ファイルを作成し、ディレクトリーの同期に関するセクションで使用したコマンドを貼り付けます。rclone.exe
への絶対パスを指定します。忘れずにファイルを保存してください。C:\full\path\to\rclone.exe sync "C:\path\to\my\backup\directory" RemoteName:newbucket
-
schtasks
を使用して、ジョブをスケジュールします。 このユーティリティーは、複数のパラメーターを取ります。
-
/RU – ジョブを実行するユーザー。 これは、使用するユーザーがログアウトしている場合に必要です。
-
/RP – ユーザーのパスワード。
-
/SC – DAILY に設定します。
-
/TN – ジョブの名前。 backup という名前にします。
-
/TR – 作成した backup.bat ファイルのパス。
-
/ST – タスクを開始する時刻。 これは 24 時間の時刻形式です。 01:05:00 は 1:05 AM、13:05:00 は 1:05 PM です。
schtasks /Create /RU username /RP "password" /SC DAILY /TN Backup /TR C:\path\to\backup.bat /ST 01:05:00
Mac および Linux
-
コンピューター上の任意の場所に
backup.sh
というテキスト・ファイルを作成し、ディレクトリーの同期のセクションで使用したコマンドを貼り付けます。 以下のようになります。rclone
実行可能ファイルの絶対パスを指定し、ファイルの保存を忘れないでください。#!/bin/sh /full/path/to/rclone sync /path/to/my/backup/directory RemoteName:newbucket
-
chmod
を使用して、スクリプトを実行可能にします。chmod +x backup.sh
-
crontab を編集します。
sudo crontab -e
-
crontab ファイルの最後に項目を追加します。 crontab は単純です。最初の 5 つのフィールドは、順に分、時間、日、月、週を表します。 * の使用はすべてを示します。
backup.sh
を毎日 1:05 AM に実行する場合は、以下のようなものを使用します。5 1 * * * /full/path/to/backup.sh
-
crontab を保存すると、準備完了です。