2009年1月30日、WordPress のバックアッププラグイン ( WP-DB-Backup ) がうまく動かないので、cron を使って MySQL のデータを Gmail に定期バックアップする方法を調べてみました。
この方法だと WordPress に限らず他の CMS でも使えそう。
OTCHY.NET » MySQL のダンプを Gmail でお手軽に定期バックアップ と言うページで紹介されていたスクリプトを使わせて頂きました。 ありがとうございます。
この記事の目次 非表示
CORESERVER での設置例
私の使っている CORESERVER での設置例を書いておきます。
今回編集したファイルは EUC + LF で保存しました。
cron に登録するファイルはフルパスで書くみたいです。
下のコードの [ **** ] の部分には、CORESERVER のアカウント名が入ります。
backup.pl ( 上記ページで公開されていたスクリプト )
パスなどの設定は、次のようにしました。
require "/virtual/****/mimew.pl";
## Setting
$sendmail = '/usr/sbin/sendmail';
$tmp = '/tmp';
$mysqldump = '/usr/local/mysql/bin/mysqldump';
$zip = '/usr/local/bin/zip';参考 : 各種パス ( PATH ) について – CORESERVER.JP : コアサーバー
backup.sh
他のデータベースも同時にバックアップしたいので、次のようなシェルスクリプトにしてみました。
原因はわかりませんが、文字コードは Shift-JIS じゃないと動きませんでした。
#!/bin/sh
/usr/local/bin/perl /virtual/****/backup.pl
exitこの段階で、次のコマンドを入力し正常に動くかどうかテストしておきます。
chmod +x backup.sh
./backup.sh参考 : シェル・スクリプトの実行
cron に登録
CORESERVER の場合、管理ページから登録しないといけないみたいなので、そのように登録。
/virtual/****/backup.sh共用サーバの場合、0:00 みたいな時間指定は止めて、中途半端な時間にしておくのが良いみたい ( 処理が集中するから? )
CORESERVER.JP で cron を設定できる最短周期は1時間毎
CORESERVER.JP では、三分以内で処理を終わらせないと強制終了するみたい
その他
メールに添付されたファイルの中身を確認してみた所、正常にダンプできているみたい。
共用レンタルサーバなので /tmp にテンポラリファイルが残らないか心配だったんだが、スクリプトで削除 ( unlink ) しているみたい。
似たような処理のスクリプトを見つけたんだが…
似たような処理をする mysqldump2email と言う物を見つけたんだが、使い方がワカラン。
パスを通さないといけないのかな?
$ ./mysqldump2emailとかやるのかな?
その他の参考になりそうなページ
hiromasa.another :o) » Blog Archive » WordPress の MySQL バックアップ
MySQL の簡単自動バックアップ | Imai Blog! ( shell も cron も使わない方法。こんな方法もあるのか…。 )
現場からは以上です。それでは、またッ!!!

