プログラム
提供: Washo3 Wiki
バックアッププログラム
MySQLデータベースの自動バックアップ
MySQLのデータベースを自動的にバックアップ
- automysqlbackup.shをダウンロード
- automysqlbackup.sh.2.5の名前を、automysqlbackup.shに変更
#> mv automysqlbackup.sh.2.5 automysqlbackup.sh
- 設定
ログイン名、パスワード、データベース名を変更するので、編集します。
#> vi automysqlbackup.sh
......
変更箇所:
USERNAME = MySQLユーザ名
PASSWORD = MySQLのパスワード
DBHOST = ホスト名(普通は、localhost)
DBNAMES = "DB1 DB2" <--半角空白で区切る
全部の場合は、"all"
BACKUPDIR = バックアップを取るディレクトリ
オプション:
COMP = gzip 若しくは bzip2
LATEST = yes 最近のバックアップディレクトリとして保存する場合にyes
編集後、保存
- Cronに登録
まず、本当に動作するのか確認する
#> automysqlbackup.sh
バックアップディレクトリにバックアップが取れていることを確認し、作業を進める。
#> cd /etc/cron.daily #> ln -s /root/automysqlbackup.sh automysqlbackup.sh
もし、root権限がなく、cron.dailyに入れることが出来ない場合には、crontabで設定しましょう。
- 属性を変更しておく。
スクリプトには、パスワードファイルが設定されているので、属性を自分専用に設定しておく。
#> chmod 700 automysqlbackup.sh <BACKUPDIR>
参考までに、これのPostgreSQL版もあるらしい。
CoreServer版に修正
XREA+だとデータベースのユーザ名とパスワードが不変だったので、automysqlbackup.shでも可能だったと思うが、CoreServerになって、データベースのユーザ名とパスワードが任意となり、逆に、全てのバックアップがとれなくなってしまった。(私が知らないだけかもしれません)
そこで、データベースのパスワードが何れも同じものを設定してある場合は、
下記の方法で動作するようになる。
#>vi automysqlbackup.sh
- USERNAME = hoge <--ユーザ名は不要なのでコメントアウト
DBNAMES = "hoge_1 hoge_2 ...." # とりたいDB名を列記する
- mysqldump --user=$USERNAME --password=$PASSWORD
mysqldump --user=$1 --password=$PASSWORD # "$USERNAME"を"$1"に変更
あとは、通常とおりの設定を施して、保存。
要するに、$DBNAMEと$USERNAMEが同じになるって事ね。