1.环境

测试环境:centos6.9

mysql版本:mysql5.6

mysql安装目录:/usr/local/mysql/

备份目录:/mysqlbak

脚本位置:/mysqlbak/mysqlbak.sh

2.脚本代码

脚本内容如下,已有注释,请自行根据内容修改:

#2018.4.15刘编写

#定义用户名和密码

user="root"

pass="root"

#设置备份目录,在此为/mysqlbak,可自行设置

backup_dir="/mysqlbak"

#获取系统时间格式2018041521

backuptime="$(date +"%Y%m%d%H")"

#删除时间设置为当前时间前2周

deletetime=`date -d "2 week ago" +"%Y%m%d%H"`

rm -f /mysqlbak/mysqlbak_$deletetime.zip

#进入mysql可执行文件目录,本人mysql安装在/usr/local/mysql

cd /usr/local/mysql/bin

#执行导出全库语句

./mysqldump -u$user -p$pass --all-databases> "$backup_dir"/mysql_"$backuptime.sql"

zip -r /mysqlbak/mysqlbak_$backuptime.zip  /mysqlbak/*.sql

rm -rf /mysqlbak/*.sql

3.mysqldump多种用法,可根据导倒数的第三行修改

命令行下具体用法如下:(若是本机执行可不使用-h localhost)

mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 路径/脚本名;

导出整个数据库结构和数据
mysqldump -h localhost -uroot -p123456 database > /home/dump.sql

导出单个数据表结构和数据
mysqldump -h localhost -uroot -p123456 database table > /home/dump.sql

导出整个数据库结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database > /home/dump.sql

导出单个数据表结构(不包含数据)
mysqldump -h localhost -uroot -p123456 -d database table > /home/dump.sql

4.设置定时任务

vi /etc/crontab

若无该文件请执行yum安装crond命令:yum install crontabs

末尾添加一行:

59 21 * * * root /mysqlbak/mysqlbak.sh

以上意思为每天21:59分执行一次备份

查看定时任务日志:tail -f /var/log/cron

注:一定要手动执行一次看是否成功

参考文章:

https://blog.csdn.net/happysunshineguy/article/details/77113483

http://www.cnblogs.com/xiaoliu66007/p/4661044.html

https://blog.csdn.net/wk1063645973/article/details/49562697