phpMyBackupProを使ってMySQL DBの自動バックアップ

phpMyBackupProというツールを使えばMySQL DBの自動バックアップができそうだったので、やってみた。

本家 http://www.phpmybackuppro.net/ からZIPファイル(phpMyBackupPro-2.5.zip)をダウンロード。
公式の日本語化ファイルは用意されていないようだが、まあなくても大丈夫だろう。
unzipしてサーバーへ送る。

Webブラウザーから繋いでconfigureすれば使えるようになる。

さらにschedule backupのメニューを使って、バックアップ用のPHPファイルを作成。

作成したバックアップ用のPHPファイルをWebブラウザーからアクセスして、手動でのバックアップができることを確認。
(テストの段階ではバックアップ頻度 Select backup period を都度 At each call に設定しておくとよいだろう。本番運用は1日置きくらいで十分だろう)

と、ここまではググれば参考になるサイトが山ほど見つかるだろう。(なので、説明を省いている)

ここからは、まずは、セキュリティーの話。

global_conf.phpという設定ファイルにMySQLのパスワードが平文で書いてあるので注意が必要。(これはWordPressでも同様)
別のディレクトリーへ設置するというのが定番の方法のようだが、中途半端だと思う。
まずは、.htaccessを使ってBasic認証を設定。
これで他者からのhttp経由のアタックは避けられる。
phpMyBackupProのアップデートを考えれば、別のディレクトリーへ設置するよりもよほど効率的だと思うのだが。

さらに、global_conf.phpのパーミッションをrw------(0600)、exportディレクトリーのパーミッションをrwx------(0700)に変更。
SuEXECな設定がなされているサーバーであればこれは強くお勧め。
こうしておかないと、同じサーバーを使っている他のユーザーに悪意があればかなり容易にパスワードが盗まれてしまう。global_conf.phpをどこに置いたとしても。

最後、自動的に定期的にバックアップ用のPHPファイルを起動する手段を講じる。

サーバーのcronが使えるならば、こんな感じになるだろう。

0 0 * * * php /home/xxx/xxx/xxx.php > /dev/null 2>&1

が、サーバーのcronが使えない場合もあるだろう。
いろいろなやり方があるだろうが、私の場合だと手元のクライアントのLinuxのcronを使ってこんな感じ ↓ で、

0 * * * * wget --http-user=xxx --http-password=xxx http://example.com/xxx/xxx.php -O /dev/null > /dev/null 2>&1

1時間おきにwgetでWebサーバーのPHPファイルへアクセスする、ということを行なっている。
もちろんクライアントのLinuxの電源が入っていない場合には動かないが、ほぼ毎日1時間以上は電源を入れるのでこんなもんで実用上は十分だろう。

Windowsならタスクスケジューラーで同じようなことができるはず。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください