Dropbox使ってますか?
Dropboxを活用してVPSサーバを毎日丸ごと全自動バックアップする仕組みを作ってみましょう。
目指すは夢のOS丸ごと全自動バックアップシステム
私はかなり前からDropboxを愛用していまして、今や課金ユーザーとなっています。
おまけに Packrat という、Dropbox 内にあるファイルの変更履歴が無限に保存されるオプションも利用しており、うっかりファイルを上書きしても履歴をたどって任意の時点に戻すことが出来る安心感に、もはやDropboxの無いPCライフは考えられない状態となっております。
そんな便利なDropboxですが、実はLinux版も公開されているのをご存知でしょうか?
なんでも自由にインストールできるのがVPSサーバの醍醐味のひとつですので、ここはひとつDropboxをVPSサーバにインストールしてバックアップに活用してみましょう。
今回はこんな方針でいきたいと思います。
- Mondo Rescue というバックアップツールを使う。
- cronで毎日OS丸ごと全データをバックアップする。(DVDイメージファイルを生成)
- バックアップデータはDropboxディレクトリに保存する
- Dropboxによってデータが複製される。
- Dropbox の Packrat のお蔭で過去のバックアップを無期限にたどれちゃう。
まさに夢のようなバックアップシステムですね。
もし不幸にもVPSサーバが吹き飛んだとしても、Dropbox内にOS丸ごとのイメージファイルがあるのですぐに復旧することができます。
では早速進めていきましょう!
Dropboxをインストールする
もしDropboxのアカウントを持っていないのであれば、まずはアカウントを作ってからお進みください。
私はサーバ毎にバックアップ用のアカウントを新規で作っています。クライアントさんにサーバを渡す時に、バックアップ用のDropboxアカウントも一緒に渡せるので便利なためです。
→ Dropbox
※このリンクから新規登録すると、標準の2GBに加えて+500MBおまけが付きます。よろしければどうぞ。
Dropboxをインストールする
公式サイトの手順に沿ってインストールしていきます。
→ Linux マシンに Dropbox をインストール
コンソールで作業をします。
まずはDropboxをダウンロード&解凍します。
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
Dropboxを起動してアカウントをリンクする
あらかじめパソコンのブラウザでDropboxを開いてログインしておくと、以降の作業がスムーズにすすみます。
インストールした Dropbox デーモンを実行します。
~/.dropbox-dist/dropboxd
デーモンが起動すると、アカウントをリンクさせるURLが表示されます。そのURLをコピーしてパソコンのブラウザで表示してDropboxアカウントとリンクさせます。
リンクが完了したら、Ctrl+Cを押して一旦Dropboxデーモンを止めます。
以下のようなディレクトリ構成でDropboxがインストールされます。
root | |-Dropbox ← このディレクトリ内が同期されます | |-.dropbox-dist | |-dropboxd |-dropbox-lnx.XXXXXXXX |-VERSION
Dropbox管理用コマンドをインストールする
Dropboxの管理用コマンドをインストールします。
mkdir ~/bin cd ~/bin wget -O dropbox.py https://www.dropbox.com/download?dl=packages/dropbox.py chmod a+x dropbox.py
他のサーバに迷惑が掛からないようLAN sync を停止しておきます。
dropbox.py start dropbox.py lansync n dropbox.py stop
Dropboxの起動スクリプトを作る
Webmin を使って起動用のスクリプトを追加します。
/etc/init.d ディレクトリに dropbox という新規ファイルを作り、以下のスクリプトを張り付けて保存してください。
/etc/init.d/dropbox
#!/bin/sh # chkconfig: 345 99 01 # description: dropbox # processname: dropbox # コマンドをインストールしたpath exec="/root/bin/dropbox.py" # 実行ユーザー user="root" start() { echo -n $"Starting $prog: " su -c "${exec} start" ${user} } stop() { echo -n $"Stopping $prog: " su -c "${exec} stop" ${user} } status() { su -c "${exec} status" ${user} } restart() { stop start } case "$1" in start) $1 ;; stop) $1 ;; restart) $1 ;; status) $1 ;; *) echo $"Usage: $0 {start|stop|status|restart}" exit 2 esac exit $?
このスクリプトは、こちらのサイトに掲載されているスクリプトを使用させていただきました。有用なスクリプトをありがとうございます。
http://hajimenovic.hatenablog.jp/entry/2014/07/15/202922
スクリプトを保存したら、実行権限を与えてから実行します。
chmod +x /etc/init.d/dropbox /etc/init.d/dropbox start
サーバ起動時に自動起動するようにしておきます。
chkconfig --add dropbox chkconfig dropbox on
バックアップツールをインストールする
Mondo Rescue をインストールする。
Centos6(64bit)用のリポジトリファイルをダウンロードします。
cd /etc/yum.repos.d/ wget ftp://ftp.mondorescue.org/rhel/6/x86_64/mondorescue.repo
Mondo Rescue をインストールします。
yum install -y mondo
高速LZO圧縮ソフトもインストールします。
yum install -y lzop lzo
Dropbox ディレクトリ内にバックアップデータを置くディレクトリを作ります。
cd /root/Dropbox mkdir VPS_backup
cronで毎日自動バックアップするよう設定する
Webmin で /etc/cron.d ディレクトリ内に、mondorescueという新規ファイルを作り以下のcronジョブを張り付けて保存します。
/etc/cron.d/mondorescue
PATH=/sbin:/bin:/usr/sbin:/usr/bin 0 3 * * * root mondoarchive -Oi -L -N -s 5000m -d /root/Dropbox/VPS_backup -E /root/Dropbox
以上で、毎日午前3時にOS丸ごとバックアップを行い、イメージファイル(DVD用)がDropboxディレクトリに保存されるようになりました。
翌朝、Dropboxディレクトリにバックアップファイルが保存されているのを確認してみてください。
お疲れ様でした!
- さくらのVPSでウェブサーバ、インストールマニュアル
- さくらVPSを申し込んで起動する
- パソコンにターミナルエミュレータをインストールする
- ユーザーを登録する
- ファイヤーウォールを設定する
- Webminをインストールする
- ApacheとPHPをインストールする
- MySQL、phpMyAdminをインストールする
- Apache + PHP を FPM/FastCGI で動かす
- ApacheをWorkerモードに切り替え&APCをインストールする
- 独自ドメインの取得&メールアドレスを設定する
- Apache の VirtualHost を編集する
- SSL証明書をインストールする(自分でやればこんなに激安!)
- SFTPでファイルを転送する
- DropboxでVPSサーバを丸ごと全自動バックアップする
ホームページの制作(デザイン・コーディング・プログラミング)に加え、ネットショップの販売促進に関するアドバイスも致します。 20年以上に渡って実際にネットショップを運営した経験を生かし、聞きかじりではない実績を伴ったノウハウを、自分の言葉でお伝えいたします。 プログラミングの経験は30年以上。HTML、CSS、JavaScript、TypeScript、Vue、NuxtJS、Node.js、MySQL、MongoDB、Elasticsearch、WordPress、PHP、Docker、Electronなど、幅広く対応します。
コメント