MySQLデータベース自動バックアップスクリプトです。
まず、下記のようなシェルスクリプトを作成しておきます。
#!/bin/sh
backupdir=""
day=`date '+%Y-%m-%d'`
host=''
user=''
pass=''
database=''
/usr/local/bin/mysqldump --add-drop-table --host=$host --user=$user --pass=$pass $database > $backupdir/$day.sql
#!/bin/sh
や/usr/local/bin/mysqldump
は、サーバーによってパス等が異なりますので、サーバー会社で確認してください。ここでは、さくらレンタルサーバー(ビジネスプラン)のケースを掲載しています。
backupdir
部分は、バックアップ用の適当なフォルダを指定してください。サーバーによっては絶対パスで書く必要があるかもしれません。
day=`date '+%Y-%m-%d'
の部分は、日付を取得しています。バックアップファイルのファイル名を日付にするためです。/$day.sql
の部分で、例えば、2011-07-10.sqlのようになります。
host, user, pass, database
は、mysqlデータベースの情報を書き込んでください。CMSの設定ファイルを見れば分かると思います。例えばWordPressならwp-config.php
、MojoMotorならconfig/database.php
です。
通常、CMSにはデータエクスポート機能があるので、そちらを使うと簡単です。ここで紹介した方法のメリットは、
- CMS管理画面を通らないので、汎用性が高い
- SSHから実行する他、cron等で自動化できる
等があげられます。(SSHやcronの設定方法はサーバー会社のマニュアル等を確認してください。)
データベースの復元は、source SQLファイル
で行うことができます(ssh でサーバーにリモートログイン、さらに mysql にログインした後、実行してください。)。