コンテンツへスキップ
ヘルプセンター

カテゴリ

ヘルプセンターを検索Ctrl K
このページの内容

rclone で Synology NAS を Drime にバックアップする

rclone の公式 Drime バックエンドを Docker で実行し、DSM のタスクスケジューラで定期実行して、Synology NAS のフォルダを Drime にコピー・同期します。

更新日 Web

このガイドは、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 トークンを作成する

  1. Drime のウェブアプリでアバターをクリックし、設定 > 開発者をクリックします。

  2. API アクセストークンでトークンを作成をクリックします。

  3. NAS がわかる名前(例:「Synology NAS」)をトークンに付け、権限はすべてのままにします。

    rclone は、アップロード、一覧表示、削除ができる必要があります。読み取り専用のトークンでは、rclone はダウンロードしかできません。

    トークン名が入力され、「権限」のタブが並ぶ「新しいトークンを作成」ダイアログ
  4. 作成をクリックしてトークンをコピーし、完了をクリックします。

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

    一度だけ表示される新しいトークン。「コピー」ボタンと、安全な場所に保管するよう求める警告がある

トークンのオプションについて詳しくは、API トークンを作成するをご覧ください。

#このガイドのコマンド

どのコマンドも、rclone のドキュメントに記載された方法で rclone の公式 Docker イメージを実行します。大文字のプレースホルダーを置き換えてください。

プレースホルダー

置き換える内容

例

CONFIG_FOLDER

rclone の設定を保存する NAS のフォルダ

/volume1/docker/rclone

NAS_FOLDER

バックアップする NAS のフォルダ、または復元先のフォルダ

/volume1/photo

DRIME_FOLDER

バックアップを受け取る Drime のフォルダ

NAS-backup/photo

YOUR_API_TOKEN

Drime の API トークン

NAS のパスは、/volume から始まるフルパスで指定してください。Docker の中では、rclone から CONFIG_FOLDER は /config/rclone、NAS_FOLDER は /data として見えます。

#NAS で rclone を設定する

#Container Manager を使う(SSH なし)

  1. DSM で Control Panel > Task Scheduler を開きます。

    Create をクリックし、Scheduled Task > User-defined script を選びます。

  2. タスクに名前(例:「rclone setup」)を付け、ユーザーに root を選びます。

  3. 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 という名前のリモートを作成します。

  4. タスクを保存し、一覧でタスクを選んで Run をクリックします。

  5. 実行後、タスクを削除します。

    タスクにはトークンが含まれています。

#SSH を使う

rclone の対話式の設定を使いたい場合は、次の手順で操作します。

  1. DSM で Control Panel > Terminal & SNMP > Terminal を開き、Enable SSH service にチェックを入れます。

    Synology は、SSH を有効にするとセキュリティ上のリスクが生じる可能性があると警告しています。作業が終わったら、SSH をもう一度オフにしてください。

  2. パソコンから SSH で NAS に接続し、sudo -i を実行します。

    SSH でサインインするには、ローカルの administrators グループに属するアカウントが必要です。sudo -i では、そのアカウントのパスワードを求められます。

  3. rclone の対話式の設定を開始します。

    docker run --rm -it \
        --volume CONFIG_FOLDER:/config/rclone \
        --user $(id -u):$(id -g) \
        rclone/rclone \
        config
  4. rclone の質問に答えて、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 を使うと、代わりに完全に削除されます。

#バックアップをスケジュールする

  1. Control Panel > Task Scheduler で、ユーザーを root にして Scheduled Task を作成します。

    User-defined script を選びます。

  2. Schedule タブで、曜日と時刻(例:毎晩)を選びます。

  3. 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 /data

1つずつのファイルなら、Drime のウェブアプリからダウンロードすることもできます。

#うまくいかない場合

表示される内容

対処方法

設定ファイルに drime のセクションが見つからないと rclone が表示する

コマンドが、設定時と同じ CONFIG_FOLDER を使っていません。すべてのコマンドで同じフォルダを使ってください。

rclone が /data を見つけられない、または何もコピーしない

NAS_FOLDER が間違っています。/volume から始まるフォルダのフルパスを使ってください。

タスクが Docker のエラーですぐに失敗する

Container Manager(DSM 7.1 では Docker)がインストールされていること、タスクが root で実行されていることを確認してください。

rclone が Drime に接続できなくなった

トークンが削除されたか、無効にされた可能性があります。この場合、Drime API は 401 と Unauthenticated. を返します。新しいトークンを作成し、設定用のコマンドの config create drime drime access_token YOUR_API_TOKEN を config update drime access_token YOUR_API_TOKEN に置き換えて実行してください。

rclone で一覧表示やダウンロードはできるが、アップロードできない

トークンが読み取り専用の可能性があります。すべてのトークンを作成し、同じ方法(config update)で置き換えてください。

ストレージがいっぱいに近いときにアップロードが失敗する

Drime のストレージがいっぱいになっている可能性があります。ストレージの使用量を確認して空き容量を増やすをご覧ください。sync を実行したあとは、Drime のゴミ箱も空にしてください。

Drime アカウントで2要素認証がオンになっている

変更は必要ありません。rclone はパスワードではなく API トークンを使います。

名前がとても長いファイルがコピーされない

名前が255バイトを超えています。NAS 上で名前を短くしてください。

#次のステップ

この記事は役に立ちましたか?