現在、一部画像が欠損しています。順次復旧していますので暫くお待ちください。

【CentOS Stream9】データベースの自動バックアップを設定する

スポンサーリンク

運用サーバプログラムがKUSANAGI 9になり、ベースOSもCentOS Stream9になりました。
それにより、データベースバックアップの自動化設定にも変更点があったので、その覚え書きです。

 

環境

# kusanagi -V
KUSANAGI Version 9.6.6-1
# mysql -V
mysql Ver 15.1 Distrib 10.11.10-MariaDB, for Linux (x86_64) using EditLine wrapper

 

mysqldumpを実行できるようにする

シェルスクリプトの作成

cronで実行するシェルスクリプトを作成し、毎日バックアップを作成するように、日付を付与してバックアップを残せるようにします。

backup_db.sh

#!/bin/sh
 
# -------------------------------------------------------
#
# [環境設定]
#
 
# バックアップファイルを保存するディレクトリパス
dirpath='/dump_backup'
 
# バックアップを保存する日数
period=14
# -------------------------------------------------------
 
#
# [バックアップ取得処理]
#
# ファイル名を定義  ※「mysql-dump-yymmdd.sql」となるようにします
fileprefix="wordpress"
filedate=`date +%Y%m%d`
filename=$fileprefix$filedate
 
# mysqldumpを実行しdumpファイルを出力
mysqldump -u db_user -p db_apss_--single-transaction --flush-logs wordpress | gzip > $dirpath/$filename.dump.gz

# 出力されたdumpファイルのパーミション変更
chmod 700 $dirpath/$filename.dump.gz
 
#
# [ローテーション処理]
#
# 削除対象年月日を取得
olddate=`date --date="$period days ago" +%Y%m%d`
 
# 削除対象ファイル名を生成
oldfile=$fileprefix$olddate
 
# 削除実行
rm -f $dirpath/$oldfile.dump.gz

 

スクリプトに実行権限を付与する

# chmod u+x backup_db.sh

 

動作確認

シェルスクリプトの通り、/dump_backupフォルダにwordpress日付.dump.gzが作成されればOK。

# /dump_backup/backup_db.sh

 

cronの設定

作成したシェルスクリプトをcronで実行できるようにします。

# vi /etc/crontab
# crontab -e

 

最下行に00 05 * * * ./backup_db.shを追記します。

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
00 05 * * * sh /dump_backup/backup_db.sh

 

cronを再起動する

# systemctl restart crond

 

今回は以上となります。お疲れ様でした。

コメント

テキストのコピーはできません。
タイトルとURLをコピーしました