linux定时备份数据库

  1. linux版本为Centos6.8
  2. mysql版本为5.6

需求:编写一个Shell脚本,每天凌晨2:10分开始备份数据库

思路分析

设置数据库的备份路径
将数据库备份到备份路径
压缩成.tar.gz文件
删除10天前的文件,保持磁盘大小

步骤实行

  1. 进入 /usr/sbin/目录下创建 mysql_db_backup.sh
  2. 赋予可执行权限 chmod 744 mysql_db_backup.sh
  3. 以下为代码
#!/bin/bash
#完成数据库的定时备份
#备份的路径
BACKUP=/data/backup/db
#当前的时间作为文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#输出变量调试
#echo $DATETIME

echo "=======开始备份========"
echo=======备份的路径是 $BACKUP/$DATETIME..tar.gz”

#主机
HOST=localhost
#用户名
DB_USER=root
#密码
DB_PWD=root
#备份数据库名
DATEBASE=haoDB
#创建备份的路径
#如果备份的路径文件夹存在,就使用,否则就创建
[ ! -d "$DACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATEBASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $BACKUP
echo "当前路径为=$(pwd)"
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
#rm -rf $BACKUP/$DATETIME
rm -rf $BACKUP/$DATETIME
#删除10天前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "=========备份文件成功========"

测试

在/usr/sbin下运行 ./mysql_db_backup.sh

在这里插入图片描述查看/data/目录下的文件
在这里插入图片描述
解压tar.gz文件
tar -zxvf 2018_12_07_135744.tar.gz
在这里插入图片描述

查看sql文件
在这里插入图片描述
备份成功

将shell脚本交给crontab -e 每天2:10分定时运行

在这里插入图片描述
成功运行
在这里插入图片描述

注意
\crontab中的* * * * * 分别代表:

  1. 一小时当中的第几分钟 范围:0-59
  2. 一天当中的第几小时 范围:0-23
  3. 一月当中的第几天 范围:1-31
  4. 一年当中的第几月 范围 :1-12
  5. 一周当中的星期几 : 0-7(0和7都代表星期日)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值