linux编写定时任务定期备份数据库

这篇博客介绍了如何在Linux环境下编写脚本定期备份MySQL数据库,包括设置备份目录、配置数据库连接信息、执行mysqldump命令进行备份和gzip压缩,以及通过cron定时任务实现自动化。同时,脚本还包含了清理旧备份和检查备份文件完整性的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux编写定时任务定期备份数据库

参考博客:https://blog.csdn.net/weixin_60531485/article/details/123453445

1、编写脚本

#如果脚本文件从win编辑完再上传到linux,执行时可能会提示‘\r’未找到命令,需vim编辑时:set fileformat=unix 并回车

#获取开始时间
NOW=$(date "+%Y%m%d_%H-%M-%S")

echo "*- 当前时间:$NOW -*"

#备份文件的目录
BACKUP=/usr/local/mysql/data/backup

#数据库地址
HOST=localhost

#数据库用户名
DB_USER=root

#数据库密码
DB_PWD=123456

#备份的数据库
DATABASE=test

echo "*- 正在进行备份数据库$DATABASE......"

#创建备份文件目录,若不存在则创建
#每次备份的文件放在/usr/local/mysql/data/backup下,对应备份时的时间
[ ! -d $BACKUP/$NOW ] && mkdir -p $BACKUP/$NOW

#创建备份文件的变量,数据库备份文件以.sql结尾,备份后还需将文件压缩为.gz文件,所以改文件名定义为备份时间.sql.gz
FILE=$BACKUP/$NOW/$NOW.sql.gz

#进行备份并使用gzip压缩
mysqldump -u$DB_USER -p$DB_PWD --host=$HOST -q -R --database $DATABASE  | gzip > $FILE

# docker备份数据库使用命令
# docker exec mysql sh -c "exec mysqldump -u$DB_USER -p$DB_PWD linlian"  | gzip > $FILE

#检验文件是否备份成功
if [ -f $FILE -a -s $FILE ]
then 
	echo "***备份成功"
else
    echo "***备份失败!在查看到此提示信息后请及时检查并处理!"
fi
#打包备份文件的压缩文件及上级目录
FILE=$NOW.tar.gz
#切到/usr/local/mysql/data/backup/目录,并发送提示信息
cd $BACKUP

echo "*- 正在将备份资源打包为$FILE"

#打包
tar -zvcf $BACKUP/$FILE $NOW

#备份结束,删除备份目录
rm -rf $NOW

#找到指定目录下,120天以前的文件并删除
find $BACKUP -atime +120 -name "*.tar.gz" -exec rm -rf {} \;

#获取结束时间

NOW=$(date "+%y-%m-%d_%H:%M:%S")

echo "*- 数据库$DATABASE备份已完成"

echo "*- 当前时间:$NOW -*"

2、linux编写定时任务

  1. crontab -e:进入定时任务编辑模式
    2)写入:[linux的cron表达式] * 3 * * * [脚本路径]
    3)退出保存

cron表达式参考:cron表达式在线工具

3、crontab -l 查看检查任务是否建立

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值