« goo が Google Maps のような地図サービス | メイン | Ruby スクリプト: Amazon ECS で BrowseNode の検索 »

2005年04月20日

さくらのレンタルサーバ: MySQL データベースの自動バックアップ

さくらでレンタルサーバを借りて、MySQLデータベースを使うアプリケーションを動かしているのですが、ちょっとした操作ミスからDBのデータをすべて消してしまいました。

手元にあるのは、一週間前にとったバックアップデータのみ。これでもないよりはマシですが、最近一週間分のデータは消えてしまってかえってきません。

せめて一日一回はバックアップは取ろうと、以下のようにシェルスクリプトを仕掛けました。

サーバにログインしてバックアップ用ディレクトリを作る

mkdir ~/bak
このbakというディレクトリにバックアップを蓄積します。

シェルスクリプトの作成

シェルスクリプトは以下のような短いものです。
#! /bin/sh

d=`date +'%y%m%d'`
mysqldump -Q --host=mysql?.db.sakura.ne.jp \
  --user=ユーザ名 --password=パスワード DB名 >\
  mysql-backup-$d
実際に動かすには、DBホスト名、ユーザ名、パスワード、DB名を正しいものにします。

cronへ登録

crontabに登録します。crontab -e としてエディタを起動し、以下を入力。
PATH=/bin:/usr/bin:/usr/local/bin
5 5 * * *       (cd bak; sh mysql-backup.sh)

これで、毎日午前5時5分に bak というディレクトリに mysql-backup-050420 のようなファイルができていきます。

自分の場合はディスクスペースが余っているので、このまま放置して、気がついたときに古いものは手動で消しています。

投稿者 tam : 2005年04月20日 13:08

コメント

さくらでSQLの自動バックアップを行いたいと思い、たどり着きました。

ただ、どうしてもcrontabでCRONを登録する方法がわからず、コントロールパネルからCRONを登録しようと試みましたが、駄目でした。

昨日から色々と調べたのですが、どうしても分からず、アドバイスを頂く事は出来ますでしょうか。

投稿者 yoshi : 2005年11月01日 12:53

コメントしてください




保存しますか?