liunx,crontab定时任务+shell脚本,定时备份数据库,新手教学,简单易学

2 篇文章 0 订阅

需求分析:
1)每天零晨2:10备份数据库到/data/backup/db
2)备份开始和备份结束能够给出相应的提示信息
3)备份后的文件要求以备份时间为文件名,并打包成.tar.gz的形式,比如:
2020-08-25_155038.tar.gz
4)在备份的同时,检查是否有10天前备份的数据库文件,如果有就删除

1、新建脚本文件mysql_db_backup.sh

#切换目录
cd /usr/sbin/
#新建文件夹myshell
mkdir myshell
#切换进入目录
cd myshell
#新建脚本文件
touch mysql_db_backup.sh
#给脚本加权限
chmod 744 mysql_db_backup.sh

2、编写脚本文件

#!/bin/bash

#完成数据库的定时备份
#备份的路径
BACKUPPATH="/data/backup/db"
#当前的时间作为文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)
#echo $DATETIME
#echo "备份的路径:$BACKUPPATH/$DATETIME"

#主机
HOST=localhost
#用户名
DB_USER=root
#密码
DB_PWD=cxh1002.
#数据库
DATABASE=laravel_uni_app

#如果备份的路径文件夹存在就使用,否则创建
[ ! -d "$BACKUPPATH/DATETIME" ] && mkdir -p "$BACKUPPATH/$DATETIME"

#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUPPATH/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $BACKUPPATH
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUPPATH/$DATETIME
#删除10天前的备份文件
find $BACKUPPATH -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;

3、编写crontab定时任务

#编辑任务
crontab -e
#每天零晨2:10执行脚本
10 2 * * * /usr/sbin/myshell/mysql_db_backup.sh
#间隔1分钟执行脚本
* * * * * /usr/sbin/myshell/mysql_db_backup.sh
#或者
*/1 * * * * /usr/sbin/myshell/mysql_db_backup.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值