さくらインターネットでのmySQLデータ自動バックアップ

さくらインターネットのレンタルサーバは、共用サーバながら、データベースとしてmySQLを使用することが出来る(ライトプランを除く)。
専用サーバを用意しなくても、安価に手軽に、データベースを使ったwebサービスを構築出来るという点で、とても便利なレンタルサーバプランだ。
本格的にwebサービスを運用しようとする場合には、データの保全のために、データのバックアップは毎日とっておきたい。
そこで、さくらの共用サーバでの、mySQLデータの自動バックアップの設定方法を説明する。
mySQLのバックアップは、mysqldumpコマンドを実行することで行う。
さくらインターネットの共用サーバは、webサーバとDBサーバが別のマシンになっているので、実行の際のオプションとして、ホスト名の指定も必要になる。
mysqldumpコマンドの書式は下記の通り。
mysqldump データベース名 -uユーザ名 -pパスワード -hホスト名 > ダンプファイル名
それぞれの項目を、自分の利用するサーバの設定に合わせて変更する。
例)mysqldump database -usuisho -pABCD1234 -hmysql25.db.sakura.ne.jp > /home/suisho/sqlbackup.txt
このコマンドが定期的に実行されるように設定をする。
さくらインターネットはcronの使用が可能なので、コントロールパネルにログインして、「CRON設定ファイルの編集」メニューを選択する。
ここで一つ問題があり、コントロールパネルからcronに登録出来るコマンドの文字数の上限が50文字となっているため、上記のコマンドをそのまま登録することが出来ない。
そこで、別途、バックアップコマンドを実行するためのシェルスクリプトを作成しておき、そのスクリプトをcronから実行させる形にする。
ここでは、「backup.sh」というシェルスクリプトを作成し、下記のフォーマットで内容を記述する。(1行目に「#!/bin/sh」と書き、2行目にmysqldumpコマンドを書く)
#!/bin/sh
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
mysqldump database -usuisho -pABCD1234 -hmysql25.db.sakura.ne.jp > /home/suisho/sqlbackup.txt
この「backup.sh」を、サーバ上にアップロードするが、その際、wwwフォルダ以下は、web経由でアクセスが可能になってしまうため、wwwよりも上位のディレクトリに設置するのが望ましい。ファイルのアップロード後、cronからコマンド実行が可能なよう、パーミッションを777に変更する。
例として、/home/suishoディレクトリに「backup.sh」を置いた場合は、コントロールパネル上で、
/home/suisho/backup.sh
をcronに実行コマンドとして設定する。
これで、指定した日時にmysqlデータの自動バックアップを実行することが可能になる。