Tenken blog

mysql自动备份脚本

mysql的备份有两种方式:

1、直接备份mysql的datadir目录
2、通过mysqldump命令导出sql文件
因为第一种方法无法在其他版本的mysql中使用,所以一般都是通过第二种方式备份。下面我们来写一个shell脚本来自动化备份mysql数据

创建备份目录

1
2
3
4
5
6
7
8
9
10
11
12
###创建备份目录
mkdir -p /backup/mysql

###创建备份脚本的目录
mkdir -p /backup/shell

###创建备份脚本
cd /backup/shell
touch mysql_backup.sh
###添加可执行权限
chmod +x mysql_backup.sh
vi mysql_backup.sh

输入备份代码

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
fulldate=`date +%Y%m%d%H%M%S`
backup_root="/backup/mysql"
###这里用test数据库做举例
test_backup_path="test_"${fulldate}".dump"
test_backup_tar="test_"${fulldate}".tar.gz"
mysqldump -hlocalhost -uroot -pPASSWD --databases test > ${backup_root}"/"${test_backup_path}
cd ${backup_root}
tar czPf ${test_backup_tar} ${test_backup_path}
rm -f ${test_backup_path}
###只保留十天的数据
find ${backup_root} -type f -mtime +10 -exec rm {} \;

添加定时任务

1
2
3
crontab -e
###输入一下命令
0 3 * * * /backup/shell/mysql_backup.sh

测试
可以先直接执行mysql_backup.sh脚本,看看是否已经能成功备份,如果没问题,再测试定时任务

请我吃辣条吧~~