一、案例需求 每天凌晨 2:30 备份 数据库 test 到 /data/backup/db 备份开始和备份结束能够给出相应的提示信息 备份后的文件要求以备份时间为文件名,并打包成 .tar.gz 的形式,比如:2021-03-12_230201.tar.gz 在备份的同时,检查是否有 10 天前备份的数据库文件,如果有就将其删除。 二、shell脚本 1#!/bin/bash2#备份目录3BACKUP=/data/backup/db4#当前时间5DATETIME=$(date +%Y-%m-%d_%H%M%S)6echo $DATETIME7 8#数据库地址9HOST=localhost10DB_USER=root11BD_PWD="123456"12#备份的数据库13DATABASE=test14 15#创建备份目录14 collapsed lines16[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"17 18#备份数据库19mysqldump -u${DB_USER} -p${DB_PWD} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz20 21#将文件处理成tar.gz22cd ${BACKUP}23tar -zcvf $DATETIME.tar.gz ${DATETIME}24#删除对应的备份目录25rm -rf ${BACKUP}/${DATETIME}26 27#删除10天前的备份文件28find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;29echo "备份数据库${DATABASE} 成功" 三、定时调用 使用crond定时调用 crontab命令 Terminal window1crontab -e #新建定时任务2 3#输入以下内容430 2 * * * /usr/sbin/mysql_db_backup.sh