系统:
- Ubuntu 16.04 x64
- MySQL 5.5.16
1.创建保存备份文件的路径/mysqldata
#mkdir /mysqldata
2.创建/usr/sbin/bakmysql文件
#vim /usr/sbin/bakmysql
输入以下内容:
1#!/bin/sh 2Database=/mydata/dbbackup/mysql01/ #文件保存路径 3Date=`date '+%Y%m%d'` # 日期格式(作为文件名) 4Date_n=`date -d "-3 day" +%Y%m%d` # 删除3天前的数据 5 6#数据库 7DB_test=test 8 9#删除3天前的备份文件 10rm -rf $Database$DB_test-$Date_n* 11 12#备份数据 13mysqldump $DB_test -uroot -p123456 >$Database$DB_test-$Date.sql 14 15#压缩文件 16tar -zcPvf $Database$DB_test-$Date.tar.gz $Database$DB_test-$Date.sql 17 18#删除sql文件sql 19rm -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
完成。
参考: