码迷,mamicode.com
首页 > 数据库 > 详细

用innobackup结合计划任务对mysql做备份

时间:2018-06-28 14:43:17      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:增量备份   crontab   创建文件夹   权限   day   ack   nobackup   chmod   tab   

写个脚本让其自动完全和增量备份
完全备份

vim /root/allbak.sh
#!/bin/bash
[ ! -e /backup ]&& mkdir /backup   //新建个文件夹专门放备份文件的
day=`date +%F`                     //定义日期是时间
user=root
pass=123456
innobackupex --user $user --password $pass /backup/allbak${day} --no-timestamp   //用innobackupex做完全备份
mysql -u$user -p$pass -e "flush logs" 
```   //启用binlog日志,每次完全备份之后,刷新一遍binlog日志

vim /root/newbak.sh
#!/bin/bash
d1=date +%F //定义时间,用日期来区分
d2=date +%F -d "-1 days" //找到昨天的日期,好指明上一次备份的备份文件
dir1=/backup/allbak${d2} //昨天做的完全备份文件
dir2=/backup/newbak${d2} //昨天做的增量备份文件
user=root
pass=123456
[ ! -e /backup ]&& mkdir /backup //如果文件不存在,则创建文件夹
if [ -e ${dir1} ];then //判断昨天做的是完全备份
innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir1} --no-timestamp //指定昨天备份的完全备份文件
elif [ -e ${dir2} ];then //判断昨天做的是增量备份
innobackupex --user $user --password $pass --incremental /backup/newbak${d1} --incremental-basedir=${dir2} --no-timestamp //指定昨天备份的增量备份文件
else
innobackupex --user $user --password $pass /backup/allbak${d1} --no-timestamp
//昨天既没有做增量备份,又没有做完全备份,则做一次完全备份。
fi



加权限:
chmod +x /root/allbak.sh 
chmod +x /root/newbak.sh

写计划任务:
crontab -e 
00  03 * * 1 /root/allbak.sh  &>/dev/null      //每周一的凌晨3点执行完全备份
00   04  * * 2-7 /root/newbak.sh    & >/dev/null  //每周二到周7的凌晨4点执行增量备份

重启crond服务
systemctl restart crond 
systemctl enable crond

用innobackup结合计划任务对mysql做备份

标签:增量备份   crontab   创建文件夹   权限   day   ack   nobackup   chmod   tab   

原文地址:http://blog.51cto.com/13731599/2133671

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!