CentOS下的Mysql自动备份

本文详细介绍了在CentOS系统上如何配置MySQL数据库的自动备份。通过创建备份脚本,设置定时任务,每天2点将mytest数据库备份到/home/mysql_databak目录下,文件以日期命名并进行压缩。同时,脚本还包含了清理7天前旧备份的功能,确保只保留最近7天的数据。

     把MySQL数据库存放目录/var/lib/mysql下面的mytest数据库备到/home/mysql_databak里面,并且保存为mysql_databak20160317.tar.gz的压缩文件格式(20160317是指备份执行时当天的日期)

1、创建保存备份文件的目录:/home/mysql_databak

mkdir  /home/mysql_databak

2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh

    vim /home/mysql_data/mysql_databak.sh

在mysql_databak.sh文件中添加以下内容

#!/bin/sh

/etc/init.d/mysqld stop   #执行备份前先停止MySql,防止有数据正在写入,备份出错

date=` date +%Y%m%d `  #获取当前日期

DAYS=7      #DAYS=7代表删除7天前的备份,即只保留最近7天的备份

BK_DR=/home/mysql_ databak   #备份文件存放路径

DB_DR=/var/lib/mysql/mytest  #数据库路径

LINUX_USER=root           #系统用户名

tar zcvf $BK_DR/mysql_databak$date.tar.gz $DB_DR  #备份数据

/etc/init.d/mysqld start  #备份完成后,启动MySql

chown -R $LINUX_USER:$LINUX_USER $BK_DR  #更改备份数据库文件的所有者

#删除7天前的备份文件(注意:{} \;中间有空格)

find $BK_DR -name "mysql_databak*" -type f -mtime +$DAYS-exec rm {} \;

3、修改文件属性,使其可执行

chmod +x /home/mysql_data/mysql_databak.sh

4、修改/etc/crontab #添加计划任务

vim /etc/crontab

#在末尾添加

00 2 * * * root /home/mysql_data/mysql_databak.sh #表示每天2点00分执行备份

5、重新启动crond使设置生效

/etc/rc.d/init.d/crond restart

chkconfig crond on #设为开机启动

service crond start #启动

6、每天你在/home/mysql_data目录下面可以看到类似mysql_databak20160317.tar.gz这样的压缩文件,如果需要恢复文件的时候,只需要把这个文件解压即可。

解压缩命令:tar -zxvf  mysql_databak20160317.tar.gz


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值