Linux用crontabs做MySQL本地备份

和两天数据库服务器出了点问题,突然打不开,还担心是硬盘坏了。结果问机房的半天才给答复,说是机房停电。。。坑爹

不过这次停电也敲了下警钟,要有备份的意识啊。。。

线上mysql服务器是Linux的,就记录下 linux下的mysql备份,Let’s go!!!

线上服务器是最小化安装的 CentOS6,没有自带crontab,所以要自己装个,并设置好自启动。

#yum install vixie-cron crontabs //安装
#chkconfig crond on //开机自启动
#service crond start //启动

写脚本之前,先在备份目录里面创建一个日志文件。

#touch /home/backup/bakmysql.log

然后写个 mysql备份的脚本。。。这里默认数据库备份目录为 /home/backup

#!/bin/bash

dbuser=root  #mysql用户名
dbpwd=pwd   #mysql密码
backupdir=/home/backup
date=` date +%Y%m%d `

#record log
echo `date` start >> $backupdir/bakmysql.log

mysqldump -u $dbuser -p$dbpwd dbname--lock-tables=false | gzip > $backupdir/$date-dbname.sql.gz   #dbname为数据库名字

#record log
echo `date` finish >> $backupdir/bakmysql.log

脚本写好了,就可以在 crontabs里面写执行计划了。一般备份数据库的时间都在凌晨

在/etc/crontab 里面加入一句

07 11 * * * root /home/backup/bakmysql.sh