Teng's blog Teng's blog
首页
Java
H5前端
GitHub (opens new window)
首页
Java
H5前端
GitHub (opens new window)
  • 介绍

  • 安装

  • 基础

  • shell

    • 介绍
    • 入门
    • 系统变量
    • 自定义变量
    • 环境变量
    • 位置参数变量
    • 预定义变量
    • 运算符
    • 条件判断
    • 流程控制
    • 读取控制台输入
    • 系统函数-路径文件名
    • 自定义函数
    • 工具
    • 数据库备份案例
      • 需求分析
      • 思路
      • 实现
  • 面试与总结
  • System-Linux
  • shell
Shetengteng
2022-02-26

数据库备份案例

# 需求分析

  • 每日 2:10 备份数据库 myDB 到 /data/backup/db
  • 备份开始和备份结束都可以给出相应的提示信息
  • 备份后的文件要求以备份时间为文件名,并打包成.tar.gz形式
    • 如 2022-02-20_210201.tag.gz
  • 在备份的同时,检查是否有10天前备份的数据库文件,如果有将其删除

# 思路

  • 在/usr/sbin下编写脚本:mysql_db_backup.sh
  • 脚本将 mysql中的myDB备份到/data/backup/db文件夹下
  • 将脚本设置在crond中执行

# 实现

vim /usr/sbin/mysql_db_backup.sh
1

编辑 mysql_db_backup.sh

echo "start"
echo "backup path $BACKUP/$DATETIME.tar.gz"

# host
HOST=localhost
DB_USER=root
DB_PWD=123456
DATABASE=myDB
# 如果备份的路径文件夹存在,就使用,否则创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"

# 执行mysql的备份数据库命令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz

# 打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tag.gz  $DATETIME

# 删除临时目录
rm -rf $BACKUP/$DATETIME

# 删除10天的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

echo "finish"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  • 配置crontb
10 2 * * * /usr/sbin/mysql_db_backup.sh
1
Last Updated: 2022/03/20, 10:04:55
工具
面试与总结

← 工具 面试与总结→

Theme by Vdoing | Copyright © 2021-2022 Shetengteng | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式