Shell编程之备份数据库
备份数据库
我们的数据在时刻更新着,当数据量到达一定程度时就需要进行备份,方便我们进行管理
本篇介绍怎么在指定时间备份数据库并打包,同时在满足某一个条件时就删除已经备份过的数据库文件
shell编程综合案例
-
需求分析
-
每天凌晨2:30备份数据库 数据库名到 /data/backup/db
-
备份开始和备份结束能够给出相应的提示信息
-
备份后的文件要求以备份时间为文件名,并打包成tar.gz的形式
-
在备份的同时,检查是否有十天前备份的数据库文件,如果有就将其删除
#!/bin/bash
#备份目录
BACKUP=/data/backup/db
#当前时间
DATETIME=$(date +%Y-%m-%d_%H:%M:%S)
echo $DATETIME
#数据库主机名
DB_HOST=localhost
#数据库用户名
DB_USER=root
此处修改成自己的用户名#数据库密码
DB_PW=lsh123456
此处数据库密码根据需要修改成自己的数据库密码#备份的数据库名
DATABASE=test
#创建备份目录,如果不存在就创建
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"
#备份数据库
mysqldump -u${DB_USER} -p${DB_PW} --host=${DB_HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz
#将文件处理成tar.gz
cd ${BACKUP}
tar -zcvf $DATETIME.tar.gz ${DATETIME}
#删除对应的备份目录
rm -rf ${BACKUP}/${DATETIME}
-
删除10天前的备份文件
find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "备份数据库${DATABASE}成功"
__EOF__

本文链接:https://www.cnblogs.com/leedev-blog/p/14896929.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!