ソフラボの技術ブログ

仕事で使ったプログラミング、サーバー周りで役に立つこと、Webサービス開発に必要な技術情報、モバイル情報を書いてます。わかりやすく見やすくをモットーにしています。

Linuxでシェルを使ってDropboxにバックアップをする方法

サーバーを運用していると障害発生時にデータが消えても大丈夫なようにバックアップを取る必要があります。

物理的なサーバーに触れられるのであれば、外付けHDDやテープ装置等にバックアップを取ったりいろいろ手段はあります。

しかし、VPS等のクラウド上のサーバーとなると外付けHDD等を接続することができません。

サーバー外にバックアップを気楽に取れるDropboxを使った方法を紹介します。

手順

Dropbox developerにアプリを登録する

1.Dropbox developerサイトにアクセスする
www.dropbox.com

2.「Create App」を押下する
f:id:shinsuke789:20200723103847p:plain

3.「1. Choose an API」で「Dropbox API」を選択する
f:id:shinsuke789:20200723103856p:plain

4.「2. Choose your app's permissions model」で「Scoped access」を選択する
f:id:shinsuke789:20200723103907p:plain

5.「3. Choose the type of access you need」で「App folder」を選択する
f:id:shinsuke789:20200723103926p:plain

6.「4. Name your app」で任意の名前を入力する
f:id:shinsuke789:20200723103938p:plain

7.画面右下の「Create App」を押下する
f:id:shinsuke789:20200723103946p:plain

8.パーミッションを設定する
よくわからないので、画像のように設定して下さい。
f:id:shinsuke789:20200723104006p:plain
f:id:shinsuke789:20200723104012p:plain
f:id:shinsuke789:20200723104020p:plain
f:id:shinsuke789:20200723104058p:plain

9.後ほど使うアクセストークンを取得する
f:id:shinsuke789:20200723104105p:plain
アクセストークンを生成すると、Dropboxのルート配下に「アプリ」フォルダ、その配下に先程つけた名前のフォルダが自動的に作成されます。

Linuxdropbox_uploader.shを設定する

1.dropbox_uploader.shを任意のディレクトリにダウンロードする

$ wget https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh

wgetがない場合、yum等でインストールして下さい。


2.dropbox_uploader.shを実行する

$ ./dropbox_uploader.sh

3.Access tokenを聞かれるので、Dropbox developerで取得したアクセストークンを貼り付け、Enter押下後、「y」を入力しEnterを押下する

 This is the first time you run this script, please follow the instructions:

 1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
 2) Click on "Create App", then select "Dropbox API app"
 3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
 4) Enter the "App Name" that you prefer (e.g. MyUploader37321544428431)

 Now, click on the "Create App" button.

 When your new App is successfully created, please click on the Generate button
 under the 'Generated access token' section, then copy and paste the new access token here:

 # Access token:ここにアクセストークンを貼り付ける

 > The access token is xxxxxxxxxxx. Looks ok? [y/N]: yと入力する

4.dropboxとの連携が設定される

アクセストークンを変更したい場合、dropbox_uploader.shを実行したユーザーのホームディレクトリ配下にある「.dropbox_uploader.sh」を編集し、該当のアクセストークンを削除するか、ファイルごと削除します。
sudoで実行した場合、rootのホームディレクトリ配下のファイルを編集します。

dropbox_uploader.shを使ってアップロードする

アップロードのコマンドは以下の通りです。

$ ./dropbox_uploader.sh upload アップロードするファイル名 アップロード後のdropbox内でのファイル名

例:
$ ./dropbox_uploader.sh upload /home/user/hoge.tar.gz hoge.tar.gz

シェルを実行すると「dropboxルート/アプリ/アプリ名」に自動的にアップロードされます。
同じ名前でアップロードするようにしていると、Dropbpx無料版では最大30日間のバージョン管理がされます。
また、ファイル内容が前回と異なる場合のみバージョン管理されます。

実際の運用は、別のシェル内でdropbox_uploader.shを呼び出し、cronでシェルが実行されるようにする感じになります。

無料でDropboxの容量を増やす方法

以下のリンク経由でDropboxをインストールすると無料で500MBが永久的に付与されます。
Dropbox - You're invited to join Dropbox!

まとめ

基本的にdropbox_uploader.sh1つに付き1アプリが紐づくようになっています。
コマンド実行時にアップロード先を指定する必要はなく、すべてDropbox developerでのアプリ作成で設定されます。
サーバーでの外部バックアップを気楽に行うには、紹介したこの方法が一番手軽な方法かもしれません。