前にDropboxというファイルの同期のWebサービスの中の人が

サイトのバックアップをDropboxでできるよ

と言ってたのをふと思い出したので、

当サイトのバックアップをDropboxで行うことにしてみた。


最初にバックアップ用のアカウントを作成する。



Dropboxのトップページを開き、アカウントの作成を行う。

当サイトは全公開で特にこれといった機密性もないので、

アカウントは無料の方で登録しています。


作成できたら、

当サイトのサーバにリモート接続を行い、サーバのアーキテクチャを調べる。


$ arch
x86_64

利用しているサーバは64ビットだったので、

これから説明する内容は64ビットの方になります。

※ちなみにサーバはさくらのVPSを利用しています。


はじめに64ビット版のCLI版のDropboxをダウンロードする。


$ curl -Lo dropbox-linux-x86_64.tar.gz https://www.dropbox.com/download?plat=lnx.x86_64
$ sudo mkdir -p /opt/dropbox
$ sudo tar xzfv dropbox-linux-x86_64.tar.gz --strip 1 -C /opt/dropbox
$ /opt/dropbox/dropboxd &

最後の一行でバックグラウンドでDropboxのプロセスを起動すると、


このコンピュータは Dropbox アカウントにリンクされていません...
このデバイスをリンクするには、https://www.dropbox.com/cli_link_nonce?nonce=***********************にアクセスしてください。

このような表示になった。

とりあえず、表示されているURLをコピーしてブラウザで開いてみると、

Dropboxのログイン画面が表示されたので冒頭で作成したアカウントでログインしてみると、


このコンピュータは Dropbox にリンクされました。ようこそ、齋藤毅 さん。

サーバにリモートアクセスしている端末で突然上記のような表示に変わった。

これで当サイトのサーバはDropboxにログイン出来たらしい。


Dropbox用のディレクトリはディフォルトを利用するので、


$ cd /home/*******/Dropbox
$ sudo emacs abc.txt

でabc.txtというファイルを作成し、

操作しているパソコンでブラウザを開き、Dropboxに同じアカウントでログインしてみると、



abc.txtというファイルが同期されていた。




それでは、午前3時に当サイトのブログの箇所だけバックアップを行う仕組みを設定してみる。


バックアップを行うディレクトリは

/var/www/html/site以下すべて

になる。


$ sudo apt-get install zip
$ cd
$ emacs dbbackup.sh

ホームでバックアップ用のスクリプトを作成する。

スクリプトは下記の様に書いた。


#!/bin/sh

#サイトのバックアップ
sitedir='/var/www/html/site'

zip -r '/home/******/Dropbox/site.zip' $sitedir

siteディレクトリ毎、zipで固めて、Dropbox用のディレクトリに配置するという命令にして、

※一日分があれば良いので、zipファイル名は単純にsite.zipにしています


$ sudo chmod a+x dbbackup.sh
sudo crontab -e

でcrontabを開き、


* 3 * * * /home/********/dbbackup.sh

こうした。


翌日、ブラウザでDropboxを確認してみると、



バックアップ用のsite.zipが同期されていた。

これでサイト運営における不安要素が無料で解消されたね。


ちなみに今回のDropboxのインストール方法では、

サーバの再起動時に自動でDropboxが起動されません。


というわけで、再起動時に自動でDropboxが起動される設定を追加してみた。

自動起動はinit.dに登録する方法と、crontabの@rebootがあるらしいけど、

crontabの方が壮絶便利らしいので、そちらを採用する。


#Dropboxをインストールしたアカウントでcrontabの設定を行う
sudo crontab -u アカウント -e

crontabを開いたら、


@reboot /home/******/.dropbox-dist/dropboxd

と書いて終了。

@rebootはOS再起動後にcrontabの再起動があり、その時に実行されるらしい。


追記(2019年3月10日)

crontabの@rebootでOS再起動時にDropboxが自動で起動しなかった場合は下記のコマンドを試す

$ rm ~/.dropbox-dist
$ dropbox start
#Dropboxのデーモンのインストール
$ dropbox start -i

次の記事

Dropboxにバックアップする時はパスワード付きzipにしておく


関連記事

ワードやエクセルファイルの編集はDropboxフォルダで行おう

当サイトをHTTP/2対応して表示の爆速化してみた

SOY CMSのサイトでPageSpeed Insightsのスコアが99になりました