AB Lab

プログラミング備忘録

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

cd 

mkdir backup
mkdir backup/mysql

vim mysql_backup.sh
mysql_backup.sh
#!/bin/sh

# バックアップファイルを何日分残しておくか
period='+7'
# バックアップファイルを保存するディレクトリ
dirpath='/path/to/backup/mysql'
#mysql password
mysqlpassword="passwd"

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
mydate=`date +%y%m%d%H%M%S`
filename="mysql_$mydate.sql"
# mysqldump実行
mysqldump -uroot -p$mysqlpassword -A -E > $dirpath/$filename

# パーミッション変更
chmod 700 $dirpath/$filename

# 古いバックアップファイルを削除
find $dirpath -type f -daystart -mtime $period -exec rm {} \;

実行権限を付与

chmod 700 mysql_backup.sh

cronをインストール

yum install cronie-anacron
# cron.dailyをランダム実行したくない場合は yum -y install cronie-noanacron

chkconfig --level 2345 crond on
chkconfig --list crond  

crontab -e
0 3 * * * bash /path/to/mysql_backup.sh

設定済みのクーロンを確認

crontab -l