Rclone - 異なるクラウドストレージからファイルディレクトリを同期


Rclone は、Go言語で書かれたコマンドラインプログラムです。AmazonDrive、Amazon S3、Backblaze B2、Box、Ceph、DigitalOcean Spaces、Dropbox、 FTP、Googleクラウドストレージ、Googleドライブなど

ご覧のとおり、これは複数のプラットフォームをサポートしているため、サーバー間またはプライベートストレージにデータを同期するのに便利なツールです。

Rcloneは以下の機能を備えています

  • MD5/SHA1 hash checks at all times for ensuring file integrity integrity.
  • Timestamps are preserved on files.
  • Partial syncs supported on a whole file basis.
  • Copy mode for new or changed files.
  • One way sync to make a directory identical.
  • Check mode – hash equality check.
  • Can sync to and from network, eg two different cloud accounts.
  • (Encryption) backend.
  • (Cache) backend.
  • (Union) backend.
  • Optional FUSE mount (rclone mount).

Linuxシステムにrcloneをインストールする方法

rclone のインストールは2つの方法で完了できます。もっと簡単な方法は、次のコマンドを発行してインストールスクリプトを使用することです。

# curl https://rclone.org/install.sh | sudo bash

このスクリプトが実行するのは、それが実行されているOSの種類を確認し、そのOSに関連するアーカイブをダウンロードすることです。それからアーカイブを解凍し、 rclone バイナリを/usr/bin/rclone にコピーして、ファイルに対する 755 権限を付与します。

最後に、インストールが完了すると、次の行が表示されるはずです。

Rclone v1.44 has successfully installed.
Now run “rclone config” for setup, Check https://rclone.org/docs/ for  more details.

rclone をインストールする2番目の方法は、次のコマンドを発行することです。

# curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
# unzip rclone-current-linux-amd64.zip
# cd rclone-*-linux-amd64

バイナリファイルをコピーして実行可能な権限を与えます。

# cp rclone /usr/bin/
# chown root:root /usr/bin/rclone
# chmod 755 /usr/bin/rclone

rclone マンページをインストールします。

# mkdir -p /usr/local/share/man/man1
# cp rclone.1 /usr/local/share/man/man1/
# mandb 

Linuxシステムでrcloneを構成する方法

次に必要なことは rclone config を実行して設定ファイルを作成することです。今後の rclone の使用のための認証に使用されます。構成設定を実行するには、次のコマンドを実行します。

# rclone config

次のようなプロンプトが表示されます。

2018/11/13 11:39:58 NOTICE: Config file “/home/user/.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) – Create new remote connection
  • s) – set password protection for your configuration
  • q) – exit the config

このチュートリアルでは、 n を押して新しい接続を作成します。新しい接続に名前を付けるように求められます。その後、設定するストレージの種類を選択するように指示されます。

接続で "Google" を指定し、[ 12 ]の下にある[ "Google Drive" ]を選択しました。あなたが答えることができる残りの質問は単に空の“” であるデフォルトの答えをそのままにしておくことができます。

要求されたら、“ autoconfig” を選択すると、 Googleドライブに接続するために必要なすべての情報が生成され、 rclone Googleドライブのデータを使用します。

プロセスは次のようになります。

Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id> 
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
client_id = 
client_secret = 
scope = drive
root_folder_id = 
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2018-11-13T11:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y

Linuxシステムでrcloneを使用する方法

Rcloneには、使用可能なオプションと使用可能なコマンドのかなり長いリストがあります。より重要なものをいくつか取り上げます。

# rclone lsd <remote-dir-name>:
# rclone copy source:sourcepath dest:destpath

rclone が重複を見つけた場合、それらは無視されます。

ディレクトリ間でデータを同期したい場合は、 rclone sync コマンドを併用してください。

コマンドは次のようになります。

# rclone sync source:path dest:path [flags]

この場合、ソースは目的地に同期され、目的地のみが変更されます。このメソッドは変更されていないファイルをスキップします。このコマンドはデータを損失する可能性があるので、“ -dry-run” と共に使用すると、コピーおよび削除される内容を正確に確認できます。

データを移動するには、移動コマンドで rclone を使用できます。コマンドは次のようになります。

# rclone move source:path dest:path [flags]

ソースからのコンテンツは、移動(削除)され、選択した場所に配置されます。

インストール先にディレクトリを作成します。

# rclone mkdir remote:path

ディレクトリを削除します。

# rclone rmdir remote:path

転送元と転送先のファイルが一致するかどうかを確認します。

# rclone check source:path dest:path

ファイルを削除します。

# rclone delete remote:path

それぞれのrcloneコマンドは異なるフラグと共に使用でき、独自のヘルプメニューを含みます。たとえば、削除オプションを使用して選択的な削除を実行できます。 100M より大きいファイルを削除したいとしましょう。コマンドは次のようになります。

# rclone --min-size 100M delete remote:path

rclone を最大限に活用するには、各コマンドのマニュアルとヘルプを確認することを強くお勧めします。 rcloneの完全なドキュメントは、https://rclone.org/から入手できます。

rclone は、さまざまなクラウドストレージプロバイダー間でデータを管理するのに役立つ強力なコマンドラインユーティリティです。この記事では、 rclone 機能のほんの一部を説明しましたが、特にcronサービスと組み合わせて使用すると、さらに多くのことを達成できます。