|
6月 26
|
このサイトは、当方の自作サーバーで動いているので、レンタルサーバーのような制約が無い。
レンタルサーバを借りたことがないので、どこまでレンタルサーバーでどこまで制約があるか分からないが・・・
以下は、レンタルサーバーでも出来るかもしれないが、基本的に自鯖の方用ということで。
また、WordPress Database Backupプラグインを入れている方も不要と思われるんですが、データベースが大きくなると、ブラウザでの処理中にタイムアウトが発生する可能性があります。(タイムアウトするほどポストしていないので何とも言えませんが・・・)
日々のデータベースバックアップをどうするかというと、mysqldumpコマンドを使ってごっそり引っこ抜いてしまうという手法を使います。このコマンドで得られたダンプファイルというのは単なるテキストファイルなんですが、このフォーマットはリストアするときにMySQLが分かるような書式になっています。ということなので、このテキストファイルを圧縮し、メールで送れれば、ほぼWordPress Database Backupプラグインと同じことをブラウザのタイムアウトを気にせずバックアップを取ることが可能でやんす。
(当方はこのダンプファイルがテキストファイルであるということで、ブログの引っ越しにこの性質を利用して手間を掛けずに数時間で引っ越しを終わらせました。このことは後で記事にでもしてみます)
さて、では順を追って簡単に説明します。
まずは、mysqldumpコマンド例は以下の通りです。
# mysqldump [DB name] --host=[hostname] -u [DB user name] --password=[DB password] > [backup file name]
で、このままだと手動でコマンドを叩くしかないので、cronに任せたくなりますが、そこをちょっと我慢してメールの送信まで一気に処理しちゃうスクリプトを書いちゃいましょ。
基本的にダンプファイルを作るまではシェルスクリプト(bash)で、メール送信だけPerlスクリプトで書きました。Perl部分は[Bird-Soft]さんのコードを丸写しなので合体させました・・・orz
とりあえず、スクリプト全体のコードはこれ。(エラー処理は端折ってます)
