①上传脚本到某个文件夹下
②执行命令
crontab -e
③添加每天定时凌晨23:50执行备份数据库任务
50 23 * * * sh /脚本位置/
④重启周期服务
systemctl restart crond.server
脚本内容
#! /bin/bash
#用户名
user="test"
# 密码
passwd="test"
# 数据库名
databaseName="test"
# mysqldump存放地址
afile="/usr/local/mysql/bin/mysqldump"
# 备份文件夹下
bfile="/home/BkDb/"
#不使用--no-beep参数
moren="--no-defaults"
#不使用可能会出现'/tmp/mysql.sock'报错
a_ip="127.0.0.1"
# 备份文件名(今天的时间如20211227)
bkname=`date +%Y%m%d`
#日志目录
input_log="/home/BkDb/input.log"
# 现在的时间
nowtime=`date`
# 备份文件的后缀
houzhui=".sql"
# 前天的文件名
qiantian=`date -d '2 days ago' +%Y%m%d`
# 删除前天的文件语句
delbkname="rm -r -f ${bfile}${qiantian}${houzhui}"
echo "开始备份${nowtime}" >> ${input_log}
${afile} ${moren} -u${user} -h${a_ip} -p${passwd} ${databaseName} > ${bfile}${bkname}${houzhui}
if [ -s "${bfile}${bkname}${houzhui}" ]
then
echo "备份成功!!!" >> ${input_log}
else
echo "备份失败,请人工备份" >> ${input_log}
fi
if [ -s "${bfile}${bkname}${houzhui}" ] && [ -e "${bfile}${qiantian}${houzhui}" ]
then
${delbkname}
echo "删除前天的备份数据${bfile}${qiantian}${houzhui}成功!" >> ${input_log}
else
echo "前天没备份数据或今天备份数据失败" >> ${input_log}
fi