每天定时备份全量数据库并删除前天的备份

①上传脚本到某个文件夹下

②执行命令
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值