LoginSignup
7
9

More than 5 years have passed since last update.

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

Posted at
cd

mkdir backup
mkdir backup/mysql

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

# バックアップファイルを何日分残しておくか
period=1
# バックアップファイルを保存するディレクトリ
dirpath='/root/backup/mysql'
cd $dirpath

#mysql_password
mysqlpassword="passwd"

# ファイル名を定義(※ファイル名で日付がわかるようにしておきます)
mydate=`date +%y%m%d%H%M%S`
filename="mysql_$mydate.sql"
zipfilename="mysql_$mydate.sql.tar.gz"
# スレーブ停止
mysql -uroot -p$mysqlpassword -e "flush tables;"
mysql -uroot -p$mysqlpassword -e "stop slave;"

# mysqldump実行
mysqldump -uroot -p$mysqlpassword -A -E > $filename

# スレーブ開始
mysql -uroot -p$mysqlpassword -e "start slave;"

#backup実行
tar -zcvf $zipfilename $filename

# 圧縮前のファイルを削除
rm -f $filename

# パーミッション変更
chmod 700 $zipfilename

# 古いバックアップファイルを削除
find $dirpath -type f -daystart -mtime +3 -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
7
9
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
7
9