MTエンジニアブログ

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

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を利用します。バックアップファイルが設置される空き容量が一時的に必要になります

 

投稿者 onagatani : 01/16

MultiFileUploader等、プラグインのセキュリティアップデートの提供を開始しました

方川 2011年10月25日

本日、以下のプラグインをアップデートいたしました。

セキュリティ問題の改修に加え、いくつかの機能改善、信頼性の向上を行っております。プラグインをご利用の方はお手数ですがアップデートをお願いいたします。プラグインのダウンロードは各プラグインページからお願いいたします。

ご利用中のお客様にご迷惑お掛けしたことを、深くお詫び申し上げます。

セキュリティアップデート

Movable Typeで管理している情報を、アプリケーション上の一部の操作において、遠隔の第三者により更新、変更される可能性があります。

本セキュリティアップデートは以下の問題を修正しています。

アップデートしたプラグイン一覧

各プラグインのアップデート内容は以下となります。

プラグイン名 バージョン アップデート内容
MultiFileuploader 0.45 セキュリティアップデート
MailPack 1.9 ・セキュリティアップデート
・ユーザー登録確認を省いて誰でも投稿できる機能の実装
EntryImExporter 1.42 ・セキュリティアップデート
・CSV取り込み、エクスポートの信頼性改善
AutoTagging 0.1 ・セキュリティアップデート
・本文中のタグの解析精度の向上
AuthorEffective 1.03
1.031
セキュリティアップデート
※バージョンの表記に誤りが御座いました。訂正してお詫びいたします。
DuplicateEntry  1.24 セキュリティアップデート

 

投稿者 方川 : 10/25

YAPC::Asia 2011

onagatani 2011年09月30日

みなさんこんにちわ。最近体調くずしまくりで昼飯代が浮いて喜んでいるonagataniです。

今年もやってきましたYAPC::Asia今年もskyarcはスポンサーをしております。
skyarcでは製品開発・ソリューション共にperlで開発を行っていますが、いつも恩恵に預かるばかりで貢献できていないよね、
ということで昨年度から可能な範囲でJPAやYAPC::Asiaのスポンサーに積極的に取り組ませて頂いています。

今年からJPAではゴールドスポンサーになり、YAPC::Asiaでは広告など出しております。
また、変わった所では「遠方からの参加者支援制度」をJPAにお願いして開始して頂きました。

この制度はYAPC::Asiaで発表したいんだけど地方に住んでいるのがお金が、、、という学生さんや社会人の方にも発表して頂き地方からもPerlを盛り上げていきたいという願いが込められています。
発表者の方は「Skyarc System presents 招待 LT」 という枠にて5名の方に発表して頂きます。
(タイムテーブルに社名がでるとは思わなかったので、JPAさんサプライズに感謝です!)

ちなみに今年も弊社から「Perl Hobby Programming - Games::BeLike::EightBIT ターミナルで8ビット風ゲームを作ろう」というタイトルにて弊社社員である@keroyonn_さんが発表されます。

タイムテーブルには掲載されていないですが自分もスポンサー枠にて少しだけお話させて頂きます。

という事でYAPC::Asiaまであと2週間となりましたが皆様宜しくお願いいたします。
会場で@onagataniを発見したら声かけてください。友達少ないので。

投稿者 onagatani : 09/30

Pythonでの統計処理

logo2.gif やまかわ 2011年08月25日

こんにちはこんにちは山川です。

7/30に行われた札幌Python 3.1 で40分ほどPythonでの統計処理についてイントロを話してきました。
資料は以下です。

統計といえば R がおなじみ(SPSSとか使えるお金があるところは別ですが)ですが、
ロジックを作り込む場合や周辺処理が多い場合はPythonでやった方が便利な場面がけっこうあります。

データの前処理/後処理については R を利用する場合でもPerlなりRubyなりで加工することが多いですので、それだったら統計部分も同じスクリプトでかけた方が便利じゃないかろうか、Pythonだと割と統計用の道具がそろっているので便利だよーという話でした。

で、Python の使い道ですが、割と他に無いライブラリが結構そろっていることが多く、他の開発言語で難しいことが割合簡単に出来てしまうことがあります。今回の numpy/scipy だけでなく、やたらよくできた画像処理ライブラリ PIL なども良いですね。それからハイパー自然言語処理ライブラリ NLTK の存在や、OpenCV の公式 binding も Python ですし、使いたいライブラリがある場合は選択肢に入れると良いんじゃないかなあと思います。

あとWindowsでもだいたい動くのはほんとうに素晴らしいですねー。

投稿者 やまかわ : 08/25

第2回 Movable Type 勉強会 開催しました(1)

onagatani 2011年08月20日

onagataniです。

本日開催させて頂いたMovable Type 勉強会の内容を早速ブログにメモべースですがUPさせて頂きます。

■藤本様のセッション

MTプラグインとは
 MTの機能を拡張するプログラム

できること
 テンプレートタグの追加
 グローバルモディファイアの追加
 独自の管理画面の追加
 既存の管理画面のカスタマイズ
 テーブルフィールドの追加
 データベースに独自テーブルの追加
 各種コールバック
 テキストフィルタ
 スパムフィルタ
 etc。。。 なんでもできます

プラグインの基本的な配置
 MTディレクトリ
  pluginsディレクトリ
   config.yaml
   libディレクトリ
   プラグイン毎のディレクトリ
    *.pmファイル
   tmplディレクトリ
    *.tmpl

config.yamlファイル
 プラグインの各種情報を記述
  作者情報やプラグインの情報
  管理画面に追加するメニューの追加
  mt.cgiに追加する処理に記述
  追加するテンプレートタグの情報
  追加するフィールド情報
  etc...
 
  yamlで記述

yamlの概要
 データ構造を簡潔に記述
 データ構造を配列・ハッシュ・値だけで表す
 ハッシュのキーと値はコロンで表す
 配列の要素はマイナス
 など。

 YAMLの例

 name: プラグイン名
 id: プラグインID
 description: プラグイン概要
 author_name: 作者名
 author_link: 作者のサイトアドレス
 plugin_link: プラグインのページアドレス
 version: バージョン番号
 ・・・他色々

テンプレートタグの追加
 IloveSapporoと出力するMTLoveタグの作成

 config.yaml

 name:MTLove
 id: MTlove
 author_name: ExsampleName
 author_link: http://exsample.com
 description: I love Sapporo
 plugin_link: http://exsample.com/plugin/
 etc...

package MTLove::Plugin;
use strict;

sub love {
my ($ctx, $args) = @_;
return 'I love sapporo';
}

1;

■コールバック

MTのコアの処理の節目にプラグインの処理を追加する仕組み
MTの処理を部分的に置き換える際に使用

以下のようなタイミングで発動
 オブジェクトを保存する直前
 オブジェクトを削除する直前
 etc...

作成するプラグイン
 ブログ記事中の全角英数字と全角起動を半角記号に変換
 タイトル・本文・続き・概要・キワードを変換

ソースコードは中略します。

投稿者 onagatani : 08/20
お問い合わせはこちらから お電話でのお問い合わせ03-5475-5101

MTエンジニアブログ

MTCMS Smartキャンペーン!
承認フロー付きCMS「MTCMS Smart(98,000円)」をお買い上げの方、MTライセンス1本がタダに!

配布プラグイン一覧

MultiFileUploader
複数ファイルを一括でアップロードできるMovable Typeプラグイン
ParentalInclude
MT5でウェブサイトとブログのテンプレート連携を便利にするプラグイン
DuplicateEntry
ブログ記事を複製または移動するMovableTypeプラグイン
NotifyAnythingChanged
何かが起きたらメールで通知するMovableTypeプラグイン
rssEntry
取込んだRSSをエントリとして書き出すMovableTypeプラグイン
AutoTagging
面倒な記事のタグ付けを自動化する
FutureRebuild
日時を指定してページを再構築する
EntryImExporter
エントリをCSVに書出したり、CSVから一括登録するMovableTypeプラグイン
MailPack
Movable Typeで簡単携帯投稿!メール投稿プラグイン
DirectoryUtility
カテゴリ・フォルダの階層を表示したり、親フォルダを表示したり、何かと便利なプラグイン
CSVList
CSVデータを整形して表示する
PageBute
静的ページ用ページ分割プラグイン

注目記事

RSS

ページの先頭へ戻る