phpMyBackupProのスケジュール機能
MySQL用のバックアップスクリプトを探していて、「phpMyBackupPro」なるスクリプトを見つけた。本家サイトからのダウンロードだと最新バージョン2.1に日本語版がなかったが、その日本語対応版を配布するサイトがあったので助かった。
使い方はこちらなど、解説はいくつもあるようだ。おおむね取り扱いは簡単そうに書いてあって、確かにバックアップを手動で取るところまでは簡単だった。 ところが「スケジュールバックアップ」のところでつまづいた。すったもんだの末になんとか設定できたので、後日のために覚えとして記録しておこうと思う。
まず、とりあえずスケジュールバックアップ設定画面でスケジュール用のPHPファイルを保存して無事に登録できたと思っていたが、どうも予定通りに動いている様子がない。おかしいなと思ってまたネットで調べてみると、このスクリプトを保存しただけでは自動バックアップされるわけではないという。 つまりこのファイルは、通常の(手動での)バックアップスクリプトを読み込んで利用するためのスクリプトで、別のファイルから呼び出すためのものらしい。
たとえば別の「index.php」などのファイルに、このスケジュール用PHPファイルを「require_once」で呼び出すソースを1行追加しておく。すると、「index.php」にアクセスがあるたびにこのスケジュール用PHPが呼び出され、それによってバックアップスクリプトが起動してバックアップが行われる、という仕組みらしい。 だからこの場合、パスは「index.php」から見たバックアップ用スクリプトになる。 そしてその際、1時間なり1日なりのインターバルが設定されていれば、最新のバックアップファイルとの時間差がそれ以上の時にのみ実行される、というわけだ。
仕組みはわかってきたが、やっぱり動かない。ネット情報でもうまくいかないケースはあるようだが、特に問題なく動いているものもある。ならば必ず動くはずだ。 いろいろ試してみたところ、結局はスクリプトで書き出したファイルに何か問題があったようだ。ソースをコピーして、そのままペーストしたPHPファイルをローカルで作り、それをアップロードしたらうまく動いた。
サーバ上で書き出したファイルでなぜ動かなかったのか、はわからない。アクセス権の問題かなあ……。ファイルの存在を調べる「file_exists」で試したところ、書き出したPHPファイルは自ファイル以外を認識しなかった。 環境にもよるかもしれない。ちなみにローカル環境はMacOS X 10.7.1でブラウザはSafari5.1、サーバはApache2.2、PHP5.2、MySQL5.1だった。
ま、よくわからんけれども、とりあえず自動バックアップができるようになったのが、ヒジョーにうれしい。
|