rclone を使用してバックアップを Dropbox または Google Drive に同期

Discourse のバックアップをさまざまなクラウドストレージプロバイダーと同期できるプラグイン があります。残念ながら、現時点では Dropbox や Google Drive には対応していません。それでも Dropbox や Google Drive にバックアップを保存したい場合は、以下の手順に従ってください。ここでは Dropbox を例に説明しますが、rclone がサポートする他のバックエンド でも同様に動作します。

免責事項: この手順は Ubuntu 16.04 でテスト済みであり、私自身は問題なく動作していますが、専門家ではありません。より良い方法があるかもしれません。ご指摘いただければ、この投稿を更新するのを喜んで対応します。

rclone のインストール

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

上記のコマンドが失敗した場合、解凍ツールのインストールを求められることがあります。

sudo apt-get install unzip

Dropbox へのアクセス権限の付与

ここが最も難しい部分です。rclone に Dropbox へのアクセスを許可するにはブラウザが必要ですが、VPS に SSH で接続している状態ではブラウザを使用するのが容易ではありません。そのため、以下の 2 段階で進めてください。

まず、サーバー上で以下のコマンドを実行します。

sudo rclone config

指示に従って進めてください。ある時点で以下のような質問が出ます。

Use auto config?

これには N と答えてください。

次に、認証トークンを取得するためにデスクトップマシンに切り替える必要があります。つまり、デスクトップマシンにも rclone をインストールする必要があります(Windows 用は Rclone downloads から入手できます)。その後、Remote Setup の手順に従ってください。

トークンを取得し、待機していた SSH プロンプトに貼り付けると、以下のように Dropbox 内の全ディレクトリの一覧を取得することで、正常に動作しているか確認できます。

rclone lsd drobo:

ここで drobo は、先に Dropbox に割り当てた名前です。

バックアップを Dropbox にコピー

バックアップファイルの場所を確認してください。通常は /var/discourse/shared/standalone/backups/default にあります。2 つのコンテナ構成 を使用している場合は、/var/discourse/shared/web-only/backups/default にある可能性が高いです。

バックアップを Dropbox のバックアップディレクトリにコピーするコマンドは以下の通りです。

sudo rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

Cron ジョブの設定でバックアップを毎日 Dropbox にコピー

毎日午後 6 時にバックアップをコピーするには、crontab に以下の行を追加してください。

crontab -e

そして、以下を追加します。

0 18 * * * rclone copy /var/discourse/shared/standalone/backups/default --exclude tmp/ drobo:backups

必要に応じてより頻繁に実行することもできます。新規ファイルのみがコピーされるため、問題ありません。

なお、copy オプションを使用すると、サーバー側のバックアップが削除されても Dropbox 側にはさらに多くのバックアップが追加され続けます。サーバー側と同じバックアップのみを保持したい場合は、copy の代わりに sync を使用してください。

「いいね!」 16

cronジョブでGoogle Driveのバックアップを頻繁(例:毎日)同期しており、ドライブの空き容量があまりない方へのアドバイスです。rcloneコマンドに--drive-use-trash=falseフラグを追加することをお勧めします。

例:

rclone sync /var/discourse/shared/standalone/backups/default --drive-use-trash=false --exclude tmp/ discourse:

このフラグを使用すると、rcloneは古いバックアップをGoogle Driveのゴミ箱に送るのではなく削除します。ゴミ箱では、自動的に削除される前に30日間保持されます。これにより、Driveのストレージを大幅に節約できます。

「いいね!」 4