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!:强制退出,不保存修改的内容