系统:
- Ubuntu 16.04 x64
- MySQL 5.5.16
1.创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2.创建/usr/sbin/bakmysql文件
#vim /usr/sbin/bakmysql
输入以下内容:
#!/bin/sh
Database=/mydata/dbbackup/mysql01/ #文件保存路径
Date=`date '+%Y%m%d'` # 日期格式(作为文件名)
Date_n=`date -d "-3 day" +%Y%m%d` # 删除3天前的数据
#数据库
DB_test=test
#删除3天前的备份文件
rm -rf $Database$DB_test-$Date_n*
#备份数据
mysqldump $DB_test -uroot -p123456 >$Database$DB_test-$Date.sql
#压缩文件
tar -zcPvf $Database$DB_test-$Date.tar.gz $Database$DB_test-$Date.sql
#删除sql文件sql
rm -rf $Database$DB_test-$Date.sql
注:--all-databases 为备份全部数据库到mysqlbak下的mysql.sql文件中,如果把--all-databases替换为test,则只备份test数据库。
3.修改文件属性,使其可执行
# chmod +x /usr/sbin/bakmysql
4.修改/etc/crontab
#vi/etc/crontab
在下面添加:
01 3 * * * root /usr/sbin/bakmysql
表示每天3点钟执行备份。
5.重新启动cron
# /etc/init.d/cron restart
完成。
参考: