Linux学习_Shell编程综合案例(定时维护数据库)

本文介绍了一个用于自动化MySQL数据库备份的bash脚本,该脚本每晚定时执行,备份指定数据库到指定目录,备份文件按日期命名并压缩为.tar.gz格式。同时,脚本会检查并删除超过10天的旧备份文件,确保磁盘空间得到合理利用。

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

要求:

  1. 每天凌晨 2:10 备份 数据库 atguiguDB 到 /data/backup/db
  2. 备份开始和备份结束能够给出相应的提示信息
  3. 备份后的文件要求以备份时间为文件名,并打包成 .tar.gz 的形式,比如:2018-03-12_230201.tar.gz
  4. 在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除。

步骤

  1. cd 到 /usr/sbin/ 下,我选择把脚本写在这里
  2. vim mysql_db_backup.sh
  3. 写脚本,脚本如下:
#!/bin/bash

#先确定备份的路径
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#可以输入变量进行调试
#echo $DATETIME

echo "======开始备份======"
echo "======备份的路径是:$BACKUP ======"

#主机
HOST=localhost
#用户名
DB_USER=root
#密码
DB_PWD=1230
#备份数据库
DATABASE=DB1
#创建备份路径,如果备份的路径文件夹存在就使用,否则就创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行mysql的备份数据库的指令
#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUP/$DATETIME

#删除10天前的备份文件,按时间名字查找,查到后删除
#-exec:执行
# {} \ 是固定写法,就是把前面找到的交给rm删除
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "======备份文件成功======"

  1. 将脚本设置到crond执行
[root@nyh sbin]# crontab -e

进入到crontab中后进行配置:

10 2 * * * /usr/sbin/mysql_db_backup.sh

  1. wq保存就ok了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值