MTのMySQLデータベースのエクスポート取ってメールしておくcron設定でバックアップする話
正確にいつだったか忘れたが、ゴールデンウィークごろだったかな?このブログをホストしてるレンタルサーバのMysqlサーバ群がお亡くなりになったらしく、ブログの更新やら何やらが2、3日できなくなったことがあった。
レンタル屋さんはどうにかバックアップから復旧させたらしいのだが、最近のブログ記事のデータが何本か吹っ飛んだまま。おいおいおい。格安クオリティってのはそんなもんかね。
手元に取っておいたMySQLエクスポートファイルからデータベースを復元し、MT(MovableType)上で全記事を再構築して元に戻した。cronにしかけておいたコマンドが以下。
/usr/bin/mysqldump -h dbserver123.rental.example.jp -c -u netadbuser --password=hogehoge netadb | gzip | uuencode netadb-mysqldump.txt.gz | mail -s 'netadb-mysqldump.txt.gz' hogehogefugafuga@gmail.com
これをcronにしかけておくと、MySQLデータベースのエクスポートファイル(全データがSQLのInsert文の形になったテキストファイル)がgzip圧縮されてメール添付ファイルの形でメールされる。dbホスト名とかデータベース名とかデータベースユーザー名とかファイル名とかあて先メールアドレスとかはお好きなように。これを毎日実行にするとか週イチ実行にするとかもお好みで。こんなときgmailだとメールの容量気にしなくていいので助かる。
DBパスワードがナマで書いてあるのがちょっと気になるが仕方がない。MTであればmt-config.cgiにもナマで書いてあることだし。
エクスポートファイルから戻す(インポート)のもコマンド一発。が、筆者はそのとき面倒くさかったのでphpMyAdmin画面上のインポート機能を使ったので説明は省略。
やっぱり独自のコールドバックアップもやっておくもんです。
なお、このやり方だと、DB管理されてない情報=静的なファイル=画像とか=はバックアップされないので別途方法を考える必要がある。筆者はrsyncを使っているがその話はまた今度。

コメントする
(初めてのコメントの時は、コメントが表示されるためにこのブログのオーナーの承認が必要になることがあります。承認されるまでコメントは表示されませんのでしばらくお待ちください)