CentOS 7 使用crontab 定时备份mysql数据库, 并只保留近7天数据文件

概述

目的: 定期备份数据库数据, 并且删除过旧数据文件
操作系统: CentOS 7
数据库: Mysql 5.7
工具: crontab(CentOS 7 系统自带)

设置crond服务开机启动

  • 查看crond是否开机启动:
    systemctl list-unit-files |grep crond

  • 设置crond开机启动:
    systemctl enable crond.service

  • 关闭crond开机启动:
    systemctl disable crond.service

编辑shell脚本 (备份&清理)

  • 打开(新建)脚本文件 backup.sh:
    vim backup.sh
    文中mysql 登录用户名及密码为:root root
#!/bin/bash

#在此设置要备份的数据库名,以TEST为例
DBNAME="TEST" 
#备份数据临时存放位置,备份完成之后自动删除.			
BACKDIR="/home/root/backup/" 
#获取系统时间
DATE=`date +%Y%m%d`
#备份文件名以时间命名	
FILENAME=dump_${DATE}.sql 

#进入备份目录
cd ${BACKDIR} 

#备份数据库并追加日志
mysqldump -uroot -proot --databases TEST > ${BACKDIR}${FILENAME} >> db_backup.log

#删除近7天文件
find ${BACKDIR} -mtime +7 -name "*.sql" -exec rm -rf {} \;

如果保留近30天, 将上文最后一行中的7改为30即可.
上述备份命令为指定数据库名, 数据库全备份, 更多备份选择参照链接:
Mysql官方使用手册

将脚本加入crontab自动执行计划

  • 启动crond服务
    systmctl start crond

  • 添加计划
    crontab -e

  • 加入一行:
    30 23 * * * : /home/root/backup.sh
    保存退出(vim命令)
    以上内容表示, 每天晚上11点半, 执行对应路径下的脚本.

  • crontab格式介绍

    • 分 时 日 月 星期 要运行的命令
    • 第1列分钟0~59
    • 第2列小时0~23(0表示子夜)
    • 第3列日1~31
    • 第4列月1~12
    • 第5列星期0~7(0和7表示星期天)
    • 第6列要运行的命令
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值