#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
リストアが必要になった場合はこちらです。