LoginSignup
0
0

More than 3 years have passed since last update.

MySQLのバックアップの自動化

Last updated at Posted at 2020-09-18

MySQLのバックアップを自動で取るために設定した手順です。

サーバはAWSです。

mkdir -pv /home/ec2-user/backup

バックアップ用のフォルダを作ります。

mkdir /home/ec2-user/cron

cron用のフォルダを作ります。

vim /home/ec2-user/cron/backup_mysql.sh

mysqldump を行うシェルスクリプトを作成し、下記の内容を書き込みます。

!/bin/sh
path='/home/ec2-user/backup'
db_name=("db_name_01")
date=`date +%y%m%d`
date_old=`date --date "7 days ago" +%y%m%d`
for i in ${db_name[@]}
do
  mysqldump --user=XXX --password=YYY --skip-lock-tables --no-create-db --single-transaction --databases ${i} > ${path}/${i}_${date}.sql
  chmod 700 ${path}/${i}_${date}.sql
  rm -f ${path}/${i}_${date_old}.sql
done
chmod 700 /home/ec2-user/cron/backup_mysql.sh

DBのパスワードを記載しているため、パーミッションを絞る。

/home/ec2-user/cron/backup_mysql.sh

動作確認。

ls -l /home/ec2-user/backup/

成功していれば、このようなファイルができてます。

crontab -e
2 3 * * * /home/ec2-user/cron/backup_mysql.sh

「crontab -e」で毎日03:02に実行する。

mysql -u user -p db_name < /home/ec2-user/backup/file_name.sql

リストアが必要になった場合はこちらです。

参考にしたサイト
crontab(クロンタブ)でmysqldumpをデータベース毎に実行し毎日自動でバックアップ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0