エンジニアブログ

エンジニアブログ
Movable Type プラグイン

クラウド上にMTのデータベースをバックアップするプラグインDropbox

photo.jpg onagatani 2012年01月16日

おはようございます。本日も帯広はマイナス14度でちょー寒いonagataniです。

昨日は半年ぶりくらいに個人的にコードを書く気力が出たのでMTプラグイン書いてみました。
(今回は完全趣味な上に業務時間外で書いているのでサポート等は会社に投げないでくださいませ。質問はTwitter@onagatani

できることは少なくてDropboxにMySQLDumpを保存するだけです。
何が嬉しいかというとクラウド上にデータを保存するだけでなくDropboxの機能でクライアントAppを入れたPC全てで
データを同期するので、サーバ機で破損等あった場合でもほぼ100%データが復元できる事です。

逆にまだ実装していない機能として、MTのコンテンツを複数サーバ間で同期する機能があります。
こちらはコンテンツをバックアップしつつ、lsyncの様な使い方ができそうなので鋭意作成中なので検証完了しましたら公開させて頂きます。

使い方

  1. 以下のCPANモジュールをインストールして下さいWebService::Dropbox、Time::Piece(例:curl -L http://cpanmin.us | perl - WebService::Dropbox Time::Piece)
  2. Dropbox.plをMTのpluginsディレクトリに設置して下さい
  3. Dropboxのアカウントを作成しこちらのページでアプリケーションの登録を行なって下さい(アプリケーション名等は自由に設定して下さい。アクセス権限はフルアクセスでもディレクトリ制限有りでも どちらでも問題ないはずです)
  4. アプリケーション登録を行ったら AppKeyとAppSecretをMTに登録して下さい(システム->ツールメニュー->プラグイン->Dropbox->設定
  5. Key、Secret登録が完了したシステム->ツールメニュー->dropbox authを押下して下さい。先ほど登録したDropboxアプリケーションへ認証を許可します。許可するとMTのダッシュボードへリダイレクトされます
  6. 4の設定画面でデータベースバックアップを保存ディレクトリを指定します。事前にDropboxにディレクトリを作成して下さい(例:mtbackup)
  7. 以上でrun-periodic-tasksが一日に一回MySQLDumpをDropbox上に保存する用になります。dumpファイルはgzipにて圧縮保存されます


設定項目(mt-configに記述する例です)

  1. MySQLDumpPath /usr/bin/mysqldump
  2. GZipPath /usr/bin/gzip

ダウンロード

Dropbox01.zip

ライセンス

  • 個人での利用はご自由にお願いします。但し問題があっても責任はもてません。
  • 企業での利用は何か問題があっても責任が取れないので事前にご連絡下さい。

注意

  1. CentOS5.6のMySQLサーバでのみ動作確認をしております。WindowsやMySQL以外のデータベースでは現状動作しませんので注意して下さい。要望あればWindowsや他DBに対応しますので@onagataniまで連絡下さい。
  2. 保存されるファイルのローテーションは現状実装されていません。ご自身で定期的に削除して下さい
  3. 本番環境に設置する前に事前に検証環境での動作確認を行なって下さい
  4. Dropboxにファイルをuploadするために/tmpを利用します。バックアップファイルが設置される空き容量が一時的に必要になります