rclone で Synology NAS を Drime にバックアップする
rclone の公式 Drime バックエンドを Docker で実行し、DSM のタスクスケジューラで定期実行して、Synology NAS のフォルダを Drime にコピー・同期します。
このガイドは、rclone と Synology の公式ドキュメントに沿っています。rclone の Drime バックエンド、Docker での rclone、Synology のタスクスケジューラ、Synology の SSHをご覧ください。
rclone には公式の Drime バックエンドがあるため、Synology NAS のフォルダをスケジュールに沿って Drime にコピーできます。rclone は NAS 上の Docker で動作し、DSM のタスクスケジューラが rclone を起動します。ファイルは通常のファイルとして Drime に保存され、開く、共有する、ダウンロードすることができます。
この設定全体をまとめた公式ページはないため、このガイドで両方のドキュメントを組み合わせています。rclone と DSM 自体のサポートは Drime では行っていません。これらについてのヘルプは、それぞれのドキュメントをご覧ください。
#必要なもの
DSM 7 の Synology NAS と、その管理者アカウント。
Synology の Docker パッケージ:DSM 7.2 以降では Container Manager、DSM 7.1 以前では Docker。
SSH アクセス(rclone の対話式の設定を使いたい場合のみ)。
バックアップするデータを保存できるだけの空き容量がある Drime アカウント。
Drime の API トークン(次のセクションで作成します)。
#API トークンを作成する
Drime のウェブアプリでアバターをクリックし、設定 > 開発者をクリックします。
API アクセストークンでトークンを作成をクリックします。
NAS がわかる名前(例:「Synology NAS」)をトークンに付け、権限はすべてのままにします。
rclone は、アップロード、一覧表示、削除ができる必要があります。読み取り専用のトークンでは、rclone はダウンロードしかできません。

作成をクリックしてトークンをコピーし、完了をクリックします。
トークンは一度しか表示されません。次のステップのために控えておくか、パスワードマネージャーに保存してください。

トークンのオプションについて詳しくは、API トークンを作成するをご覧ください。
#このガイドのコマンド
どのコマンドも、rclone のドキュメントに記載された方法で rclone の公式 Docker イメージを実行します。大文字のプレースホルダーを置き換えてください。
プレースホルダー | 置き換える内容 | 例 |
|---|---|---|
| rclone の設定を保存する NAS のフォルダ |
|
| バックアップする NAS のフォルダ、または復元先のフォルダ |
|
| バックアップを受け取る Drime のフォルダ |
|
| Drime の API トークン |
NAS のパスは、/volume から始まるフルパスで指定してください。Docker の中では、rclone から CONFIG_FOLDER は /config/rclone、NAS_FOLDER は /data として見えます。
#NAS で rclone を設定する
#Container Manager を使う(SSH なし)
DSM で Control Panel > Task Scheduler を開きます。
Create をクリックし、Scheduled Task > User-defined script を選びます。
タスクに名前(例:「rclone setup」)を付け、ユーザーに root を選びます。
Task Settings で、Run command に設定用のコマンドを貼り付けます。
docker run --rm \ --volume CONFIG_FOLDER:/config/rclone \ --user $(id -u):$(id -g) \ rclone/rclone \ config create drime drime access_token YOUR_API_TOKENこのコマンドは rclone の公式イメージをダウンロードし、
drimeという名前のリモートを作成します。タスクを保存し、一覧でタスクを選んで Run をクリックします。
実行後、タスクを削除します。
タスクにはトークンが含まれています。
#SSH を使う
rclone の対話式の設定を使いたい場合は、次の手順で操作します。
DSM で Control Panel > Terminal & SNMP > Terminal を開き、Enable SSH service にチェックを入れます。
Synology は、SSH を有効にするとセキュリティ上のリスクが生じる可能性があると警告しています。作業が終わったら、SSH をもう一度オフにしてください。
パソコンから SSH で NAS に接続し、
sudo -iを実行します。SSH でサインインするには、ローカルの administrators グループに属するアカウントが必要です。
sudo -iでは、そのアカウントのパスワードを求められます。rclone の対話式の設定を開始します。
docker run --rm -it \ --volume CONFIG_FOLDER:/config/rclone \ --user $(id -u):$(id -g) \ rclone/rclone \ configrclone の質問に答えて、
drimeリモートを作成します。新しいリモートには
n、名前にはdrime、ストレージの種類にはdrimeを入力し、access_tokenで API トークンを貼り付けます。
設定を確認するには、同じコマンドの config を listremotes に置き換えて実行します。drime: が表示されれば設定できています。
#最初のコピーを作成する
まずは rclone copy から始めてください。このコマンドは Drime にファイルを追加するだけで、Drime 側のファイルを削除することはありません。上記と同じ手順で、ユーザーを root にして、次のコマンドでタスクを作成します。
docker run --rm \
--volume CONFIG_FOLDER:/config/rclone \
--volume NAS_FOLDER:/data:shared \
--user $(id -u):$(id -g) \
rclone/rclone \
copy /data drime:DRIME_FOLDERタスクを実行し、Drime で結果を確認します。
#sync で Drime を NAS とそろえる
rclone sync は、Drime のフォルダを NAS のフォルダと同じ内容にします。
次のコマンドを一度実行し、タスクの出力を確認します。
docker run --rm \
--volume CONFIG_FOLDER:/config/rclone \
--volume NAS_FOLDER:/data:shared \
--user $(id -u):$(id -g) \
rclone/rclone \
sync /data drime:DRIME_FOLDER --dry-run一覧が想定どおりであれば、--dry-run を外します。rclone が Drime で削除したファイルは Drime のゴミ箱に移動します。rclone の詳細オプション hard_delete を使うと、代わりに完全に削除されます。
#バックアップをスケジュールする
Control Panel > Task Scheduler で、ユーザーを root にして Scheduled Task を作成します。
User-defined script を選びます。
Schedule タブで、曜日と時刻(例:毎晩)を選びます。
Task Settings で、Run command に
copyまたはsyncのコマンドを貼り付けます。実行結果の詳細を毎回メールで受け取るか、スクリプトが異常終了したときだけ受け取るように DSM で設定することもできます。
#Drime でファイルを確認する
Drime のウェブアプリを開きます。DRIME_FOLDER に、ファイルが元の名前のまま保存されています。ほかのファイルと同じように、Drime のストレージを使います。
rclone の Drime のドキュメントによる注意点:
変更はサイズで検出されます。 Drime は rclone に更新日時やハッシュを提供しないため、サイズが変わらないまま編集したファイルは、もう一度コピーされません。
ファイル名の長さは、最大255バイト(UTF-8)です。
ワークスペース:rclone の詳細オプション
workspace_idを使うと、自分のファイルではなくワークスペースにバックアップを送信できます。rclone の出力の時刻は UTC です。rclone のコンテナは、
TZ変数を設定しない限り UTC を使います。
#ファイルを復元する
rclone copy を逆方向に使って、Drime からファイルをコピーして戻します。NAS_FOLDER には、空の NAS のフォルダ(例:/volume1/restore)を指定してください。
docker run --rm \
--volume CONFIG_FOLDER:/config/rclone \
--volume NAS_FOLDER:/data:shared \
--user $(id -u):$(id -g) \
rclone/rclone \
copy drime:DRIME_FOLDER /data1つずつのファイルなら、Drime のウェブアプリからダウンロードすることもできます。
#うまくいかない場合
表示される内容 | 対処方法 |
|---|---|
設定ファイルに | コマンドが、設定時と同じ |
rclone が |
|
タスクが Docker のエラーですぐに失敗する | Container Manager(DSM 7.1 では Docker)がインストールされていること、タスクが root で実行されていることを確認してください。 |
rclone が Drime に接続できなくなった | トークンが削除されたか、無効にされた可能性があります。この場合、Drime API は |
rclone で一覧表示やダウンロードはできるが、アップロードできない | トークンが読み取り専用の可能性があります。すべてのトークンを作成し、同じ方法( |
ストレージがいっぱいに近いときにアップロードが失敗する | Drime のストレージがいっぱいになっている可能性があります。ストレージの使用量を確認して空き容量を増やすをご覧ください。 |
Drime アカウントで2要素認証がオンになっている | 変更は必要ありません。rclone はパスワードではなく API トークンを使います。 |
名前がとても長いファイルがコピーされない | 名前が255バイトを超えています。NAS 上で名前を短くしてください。 |
#次のステップ
この記事は役に立ちましたか?