MySQLのCRON自動バックアップ
Movable Type本体の管理画面にもバックアップ機能は付いているが、つい忘れがち。そんな物臭な私向きなのが、指定された日時にプログラムを実行するCRON機能を使ってのMySQLバックアップファイルの自動作成。
設定可能なレンタルサーバー
「CRON」を使えるかどうかがポイント。
- さくらインターネット

- CORESERVER.JP
... など
自分メモ
ネット検索すると幾つかの方法が見付かるが、毎日上書きするのではなく、日別にファイルを作成してくれるタイプが安心かも。旅行などで留守にしている間にデータベースが飛んだりした場合、肝心のバックアップファイルが使い物にならなかったら話にならない。
- 1. backup.sh ファイルを作成
- 以下は例としてユーザー名「overseas」、パスワード「fun」などにしてあるので、太字部分を適宜変更。TeraPadなどのテキストエディタを使い、文字コード「UTF-8」、改行コード「LF」、拡張子「sh」で保存。
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
KEEPDAY=30
TODAY=`date +'%y%m%d'`
DBDUMP_FILE=mysql.$TODAY
RMFILE=mysql.`date -v -"$KEEPDAY"d +%y%m%d`.gz
HOME_DIR=/home/overseas
BACKUP_DIR=$HOME_DIR/backup
cd $BACKUP_DIR
mysqldump -Q --host=mysql999.db.sakura.ne.jp \
--user=overseas --password=fun overseas >\
$DBDUMP_FILE
gzip $DBDUMP_FILE >/dev/null 2>&1
if [ $? != 0 -o ! -e $DBDUMP_FILE ]; then
echo "SUCCESS! MAYBE!"
rm -f $RMFILE
exit 0
fi - 2. サーバーにアップ
- さくらインターネットならば「www」内ではなく、その上のホームディレクトリ直下、shファイルに書き込んだ通りの「/home/overseas」の階層が吉。「www」だとウェブ上から見ることが出来るらしい? テキストモードで転送し、アクセス権を「705」または「755」にする。
- 3. サーバー上にディレクトリを作る
- shファイルと同じ「/home/overseas」の階層に、「backup」という名称のディレクトリ(フォルダ)を新たに作っておく。30日分のファイルがここに保存されることになる。
- 4. CRONを設定
- さくらインターネットならば、レンタルサーバーのコントロールパネルにログイン。メニュー「CRONの設定」から「新規項目を追加」。時刻などの入力数字は勿論任意で。
実行コマンド「/home/overseas/backup.sh」
上記だと自動バックアップが成功する度、毎日23時59分以降にメールが届く。メール不要の場合の実行コマンドは
実行日時は上から「*」「*」「23」「59」
実行日時の曜日はチェックを入れず
コメントは「MySQLバックアップ」/home/overseas/backup.sh 1> /dev/null
後は「backup」ディレクトリに毎日ファイルが作成されていればOK! ……ではなく、MT本体でのバックアップも面倒がらずに行いましょう(汗)。
info
modified on December 22, 2008
related entries
- tags : Movable Type, インターネット
- サイト作成関連リンク > 小粋空間
- インターネット > MTエントリーの文字数カウント
- サイト作成関連リンク > レッツPHP!
- インターネット > 画像拡大+画面表示 ThickBox
- 戯言 > Norton Internet Security トラブルメモ
1 trackback
- muneto.murakami.biz Weblog
これでうまく動作したのですが、バックアップデータのフィールドのコメントがutf-8で、レコードがEUCだったようで、なにやら文字化けします。。。以下のようにオプションを追記したら文字化けが改善...