放牛的

放牛的日子,是人生初恋的诗...

0%

MySQL自动备份

你是否有过这样的经历:MySQL中误删了数据,数据没有备份,bin-log还没开。

我今天刚经历了一次,因为是测试环境,一般认为数据丢了也没关系。

但误删数据,总是会带来麻烦,有备无患。

备份分2步:写个备份的Shell脚本、配置cron。

Shell脚本

我把脚本写在/usr/bin/mysql_backup.sh文件中,

并给它可执行权限chmod +X /usr/bin/mysql_backup.sh

脚本内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash
echo 'start backup mysql...';

echo 'create directory[/root/mysql_backup] if not exist...';
mkdir -p /root/mysql_backup;

echo 'backup mysql to [/root/mysql_backup] directory...';
mysqldump -u root -pPassword --all-databases > /root/mysql_backup/all_$( date +"%Y_%m_%d" ).sql;

echo 'delete old backup files';
find /root/mysql_backup -type f -mtime +10 -exec rm {} \;

echo 'backup mysql finish';

配置CRON

修改/etc/crontab文件,加入下行:

1
0 5 * * * root /usr/bin/mysql_backup.sh

这样,每天5点,以root用户执行该脚本。