Sheel脚本之备份MySQL

Sheel脚本之备份MySQL_第1张图片

脚本写法<<我的数据库是docker >>   你们不是的话  把 docker exec -i mysql3308  这个命令删掉即可

#!/bin/bash
echo  "---------倒计时开始备份-------------"

for((i=0;i<=3;i++))
do
    sleep 1
    echo "《《《《《《 $i 》》》》》"
done
BACKUP=/data/backup/db/
DATETIME=$(date +%Y_%m_%d_%H%M%S)
echo "备份路径是 $BACKUP/$DATETIME.tar.gz"
HOST=localhost
DB_USER=root
DB_PWD=103658
DK=3308  #端口
#备份数据库
DATABASE=db3
echo "$DATETIME"
#如果备份的路径存在就使用、没有就创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行备份数据库命令
docker exec -i mysql3308  mysqldump -h $HOST -P$DK -u${DB_USER} -p${DB_PWD} $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.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 "========备份文件成功==========="

 

使用这个定时任务命令

crontab -e
第一个* 代表 每一分钟执行一次

第二个*代表 每一小时执行一次 具体参考他们的写法

./mysql_db_backup.sh 是脚本的名称

你可能感兴趣的:(后端)