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
とかやるのかな?
その他の参考になりそうなページ
– CORESERVER.JP で MySQL ( DB ) を自動バックアップする方法 – ひとぅブログ – hiromasa.another :o) » Blog Archive » WordPress の MySQL バックアップ – Coreserver でのバックアップ – 治療不可 – ArtSoftwareWorks.Net – 31.運用すっか ~バックアップ編~ – MySQLバックアップ<Xrea編> – MMRT daily life – MySQL の簡単自動バックアップ | Imai Blog! ( shell も cron も使わない方法。こんな方法もあるのか…。 )
[…] 参考:perl + shell + cron で MySQL のデータを Gmail に定期バックアップ | Bowz::Notebook […]
CoreserverでMySQLのデータを自動的にバックアップする方法
Coreserverで、MySQLデータベースを自動でバックアップする方法。 以下のスクリプト(backup.sh)をcronで定期的に実行します。
!/bin/sh/usr/local/mysql/bin/mysqldump -h localhost -c -u DBユーザ名 –passwor…