CentOS下的Mysql自动备份

时间:2022-02-09 01:49:22

     把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