CentOS定时备份MySQL数据库

1、编写备份脚本

vi /usr/sbin/mysql_dy_backup.sh

#!/bin/bash

#备份路径

BACKUP=/data/backup/sql/dy

#当前时间

DATETIME=$(date +%Y-%m-%d_%H%M%S)

echo "===备份开始==="

echo "备份文件存放于${BACKUP}/$DATETIME.tar.gz"

#数据库地址

HOST=localhost

#数据库用户名

DB_USER=root

#数据库密码

DB_PW=Ces123456

#创建备份目录

[ ! -d "${BACKUP}/$DATETIME" ] && mkdir -p "${BACKUP}/$DATETIME"

#后台系统数据库

DATABASE=dy_backgroundms

mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql.gz

#投入品监管数据库

DATABASE=dy_firip

mysqldump -u${DB_USER} -p${DB_PW} --host=$HOST -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATETIME/$DATABASE.sql.gz

#压缩成tar.gz包

cd $BACKUP

tar -zcvf $DATETIME.tar.gz $DATETIME

#删除备份目录

rm -rf ${BACKUP}/$DATETIME

#删除10天前备份的数据

find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "===备份成功==="

注:find:linux的查找命令,用户查找指定条件的文件

-mtime:标准语句写法

+10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件

"*.*":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三

-exec:固定写法

rm -rf:强制删除文件,包括目录

{} \; :固定写法,一对大括号+空格+\

2、更改备份脚本权限

chmod u+x /usr/sbin/mysql_dy_backup.sh

3、设置定时执行脚本任务

crontab -e

#每天17:30执行

30 17 * * * /usr/sbin/mysql_dy_backup.sh

————————————————————————————————————————————————————————————————————————

copy时候按a

可以通过以下命令查看任务日志:

tail -f /var/log/cron

q:退出

wq:修改后保存退出

q!:强制退出,不保存修改的内容