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…