データベース自動バックアップ

CentOS Stream 8

データベースのバックアップを定期的に実行するようスクリプトを作成し、cronを設定する

script作成

vi mysql-backup.sh
#!/bin/bash

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

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

# MySQLrootパスワード
ROOTPASS=xxxxxxxx ← rootのパスワードを記載

# バックアップ先ディレクトリ再作成
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

実行権限を付与

chmod 700 mysql-backup.sh

実行確認する

sh mysql-backup.sh

cron設定

毎日深夜0時にバックアップを実施することとする

echo "0 0 * * * root /root/mysql-backup.sh" > /etc/cron.d/backup

参考

MySQLデータベース自動バックアップ運用(mysqldump) - CentOSで自宅サーバー構築
MySQLデータベース自動バックアップ運用(mysqldump)

コメント

タイトルとURLをコピーしました