千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:重庆千锋IT培训  >  技术干货  >  技术点分享--基于Shell编程完成数据库的定时备份

技术点分享--基于Shell编程完成数据库的定时备份

来源:千锋教育
发布人:lxl
时间: 2023-03-21 11:01:44

  一. 前言

  最近有一个学员面试成功上岸,在公司开发时遇到了这么一个需求:领导要求他编写一个shell脚本,完成定时备份数据库的需求。所以今天文哥就在这里写了一个基于shell脚本,对数据库进行定时备份的案例,希望对大家能够有所帮助。

  二. 案例场景

  1.需求分析

  每天凌晨2:30备份数据库day01到/data/backup/db;

  备份开始和备份结束的时候,要给出相应的提示信息;

  备份后的文件要以备份时间为文件名,并打包成tar.gz的格式,比如:2021-09-15_230201.tar.gz;

  在备份的同时,要检查是否有10天前备份的数据库文件,如果有就将其删除。

  2.思路分析

基于Shell编程完成数据库的定时备份

  三. 需求实现

基于Shell编程完成数据库的定时备份

  我们在shell脚本里面输入以下内容:

基于Shell编程完成数据库的定时备份

  我们输出一下时间,看看脚本编写是否有误:

基于Shell编程完成数据库的定时备份

  接下来我们继续编写脚本:

基于Shell编程完成数据库的定时备份

  此时我们可以继续测试脚本是否正确,看看有没有为我们创建备份目录。

  [root@qfedu sbin]# ./mysql_db_backup.sh

  我们在根目录去查看备份目录是否存在:

  [root@qfedu 2022-09-07_232210]# pwd

  /data/backup/db/2022-09-07_232210 # 我们发现备份目录以及自动创建完成

  我们继续编写shell脚本:

  # 备份数据库

  mysqldump -u${DB_USER} -p${DB_PW} --host=${HOST} -q -R --databases ${DATABASE} | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz

  现在我们执行脚本,来测试一下:

基于Shell编程完成数据库的定时备份

  我们继续编写shell脚本:

基于Shell编程完成数据库的定时备份

  我们现在测试一下脚本,看看是否写正确:

基于Shell编程完成数据库的定时备份

  我们继续编写shell脚本:

  # 删除10天前的备份文件

  find ${BACKUP} -atime +10 -name "*.tar.gz" -exec rm -rf {} \;

  echo "数据库${DATABASE}成功...."

  接下来我们使用crontab -e指令编写定时任务:

  [root@qfedu sbin]# crontab -e

  编写定时任务:

  30 2 * * * /usr/bin/mysql_db_backup.sh

  这样我们编写备份数据库的脚本就完成了,最后脚本代码如下:

基于Shell编程完成数据库的定时备份

  至此,我们就完成了数据库的定时备份案例,希望能够对大家有所帮助。


声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

java的输入语句—— Scanner类

2023-05-04

java数据库操作常识事务的四大特性

2023-05-04

DML数据操作之增加或删除数据

2023-05-04

最新文章NEW

socket是什么?有什么作用?

2023-05-04

Java常量定义是什么

2023-04-28

一分钟带你学多线程

2023-04-28

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>