運用サーバプログラムがKUSANAGI 9になり、ベースOSもCentOS Stream9になりました。
それにより、データベースバックアップの自動化設定にも変更点があったので、その覚え書きです。
環境
1 2 3 4 |
# 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#!/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 |
スクリプトに実行権限を付与する
1 |
# chmod u+x backup_db.sh |
動作確認
シェルスクリプトの通り、/dump_backupフォルダにwordpress日付.dump.gzが作成されればOK。
1 |
# /dump_backup/backup_db.sh |
cronの設定
作成したシェルスクリプトをcronで実行できるようにします。
1 |
# vi /etc/crontab |
1 |
# crontab -e |
最下行に00 05 * * * ./backup_db.shを追記します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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を再起動する
1 |
# systemctl restart crond |
今回は以上となります。お疲れ様でした。
コメント