2011/07/29

MySQL自動データベースバック

バックアップスクリプトの作成
vi mysql-backup.sh

内容は下記の通り

#!/bin/bash

PATH=/usr/local/sbin:/usr/bin:/bin

# バックアップ先ディレクトリ
BACKDIR=/backup/mysql

# MySQLrootパスワード
ROOTPASS=xxxxxxxx

# バックアップ先ディレクトリ再作成
rm  -rf $BACKDIR
mkdir -p $BACKDIR

# データベース名取得
DBLIST=`ls -p /var/lib/mysql | grep / | tr -d /`

# データベースごとにバックアップ
for dbname in $DBLIST
do
    table_count=`mysql -u root -p$ROOTPASS -B -e "show tables" $dbname|wc -l`
    [ $table_count -ne 0 ] &&
    mysqlhotcopy $dbname -u root -p $ROOTPASS $BACKDIR | logger -t mysqlhotcopy
done

権限を変更してcronに設定。
chmod 700 mysql-backup.sh
echo "0 5 * * * root /root/mysql-backup.sh" > /etc/cron.d/backup 

参考:http://centossrv.com/mysql-backup.shtml

戻すときはディレクトリごとコピーする
/bin/cp -Rf /backup/mysql/test/ /var/lib/mysql/ 

0 件のコメント: