提供: すだちWiki
移動先: 案内検索

MySQLデータベース自動バックアップ運用(mysqldump)(CentOS7)

メインページ > CentOS 7 で自宅サーバー構築  > MySQLデータベース自動バックアップ運用(mysqldump)(CentOS7)

MySQLデータベースの自動バックアップを行なう。

バックアップ設定

バックアップスクリプト作成

MySQLデータベースバックアップスクリプト作成

[root@host3 ~]# 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
    [ $dbname = "performance_schema" ] && continue
    table_count=`mysql -u root -p$ROOTPASS -B -e "show tables" $dbname|wc -l`
    [ $table_count -ne 0 ] &&
    mysqldump --events -u root -p$ROOTPASS $dbname > $BACKDIR/$dbname.sql | logger -t mysqldump
done

[root@host3 ~]# chmod 700 mysql-backup.sh ← rootのみ参照・実行できるようにパーミッション変更

バックアップ確認

[root@host3 ~]# ./mysql-backup.sh ← MySQLデータベースバックアップスクリプト実行

[root@host3 ~]# ll /backup/mysql/ ← MySQLデータベースバックアップ確認
合計 536
-rw-r--r-- 1 root root 514526  9月 10 19:56 mysql.sql

バックアップ定期自動実行設定

[root@host3 ~]# echo "0 5 * * * root /root/mysql-backup.sh" > /etc/cron.d/backup