二十二、定时备份数据库案例1

需求:

1、每天凌晨2:30备份数据库wchxdb到/data/backup/db

2、备份开始和备份结束要给出相应的信息提示

3、备份文件以备份时间为名,并打包成.tar.gz的形式,如2022-06-17_023011.tar.gz

4、在备份的同时,要检查是否有10天前的备份文件存在,存在就进行删除(即文件只保存10天)

[]vim /files/mysql_db_backup.sh
#!/bin/bash
BACKUP=/data/backup/db #备份路径
DATETIME=$(date + %Y-%m-%d_%H%M%S) #提取当前时间
HOST=localhost #数据库地址
DB_USER=root#数据库用户名
DB_PW=123456 #数据库密码
DB_DATA=wchxdb #备份数据库名 
#判断备份目录是否存在,如果不存在就创建目录
[ ! -d "${BACKUP}/${DATETIM}" ] && mkdir -p "${BACKUP}/${DATETIM}"
#备份数据库
mysqldump -u${DB_USER} -p${DB_PW} -h${HOST} -q -R --databases=${DB_DATA} | gzip > ${BACKUP}/${DATETIM}/$DATETIM.sql.gz
#将文件处理成tar.gz
cd  ${BACKUP}
tar -zcvf  $DATETIM.tar.gz  ${DATETIM}
#删除对应的备份目录
rm -rf  ${BACKUP}/${DATETIM}
#删除10天前的文件
find ${BACKUP} -time +10 -name "*.tar.gz" -exec rm  -rf {} \;
echo "备份数据库${DB_DATA}成功"

#定时2:30
crontab -e
30 2 * * *  /files/mysql_db_backup.sh

 

posted @ 2025-11-18 08:55  chao_xiong  阅读(4)  评论(0)    收藏  举报