linux上mysql数据库每天定时自动备份并删除3天前数据

1.创建备份目录

为了方便,在/home保存备份文件;

 cd /home
 mkdir backup 
 cd backup 

2.创建备份Shell脚本

vi bkName.sh 

脚本名称也可以自定义,后面记得全部修改
输入/粘贴以下内容:
PS:记得修改对应信息

#!/bin/bash
# Name:bakmysql.sh
# This is a ShellScript For Auto DB Backup and Delete old Backup
#
#备份地址
backup_dir=/home/dbback
#数据库名
db_name="words"
time="$(date +"%Y%m%d%H%M%S")" 
# 备份数据库
mysqldump -umysql用户 -pmysql密码 $db_name > $backup_dir"/"$db_name"_"$time".sql"
#删除3天前的备份
find $backup_dir -name "db_name*.sql" -type f -mtime +3 -exec rm {} \; > /dev/null 2>&1

对备份进行压缩:

#!/bin/bash 
mysqldump -umysql用户 -pmysql密码 数据库名 | gzip > /home/dbback/数据库名_$(date +%Y%m%d_%H%M%S).sql.gz

3.添加可执行权限

chmod u+x bkName.sh 

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkName.sh 

5.添加计划任务

1.检测或安装crontab
执行以下命令看是否安装有crontab

rpm -qa | grep crontab

如果已经安装,显示如下:
在这里插入图片描述
如果没有安装的话,先安装

yum -y install vixie-cron
yum -y install crontabs

2.添加计划任务

crontab -e 

输入以下内容并保存:

1 0 * * * /home/backup/bkName.sh 

意思是每天凌晨执行一次bkName.sh 脚本
显示如下便添加成功:
在这里插入图片描述

6.测试任务是否执行

执行几次“ls”命令看下是否有文件创建就知道了。如果任务执行失败,看以下日志

# tail -f /var/log/cron
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值