linux下使用crontab如何实现mysql数据库每天自动备份定时备份,并只保留近7天数据文件

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

#!/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 {} \;

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

添加计划

crontab -e

加入一行:

#每天晚上11点半, 执行对应路径下的脚本.
30 23 * * *  /home/root/backup.sh

保存退出(vim命令)

3. Cron 各项的描述

以下是 crontab 文件的格式:

{minute} {hour} {day-of-month} {month} {day-of-week} {full-path-to-shell-script}
minute: 区间为 0 – 59
hour: 区间为0 – 23
day-of-month: 区间为0 – 31
month: 区间为1 – 12. 1 是1月. 12是12月.
Day-of-week: 区间为0 – 7. 周日可以是0或7.

4.Crontab 示例

  1. 在 12:01 a.m 运行,即每天凌晨过一分钟。这是一个恰当的进行备份的时间,因为此时系统负载不大。

    1 0 * * * /root/bin/backup.sh
    
  2. 每个工作日(Mon – Fri) 11:59 p.m 都进行备份作业。

    59 11 * * 1,2,3,4,5 /root/bin/backup.sh
    

    下面例子与上面的例子效果一样:

    59 11 * * 1-5 /root/bin/backup.sh
    
  3. 每5分钟运行一次命令

    */5 * * * * /root/bin/check-status.sh
    
  4. 每个月的第一天 1:10 p.m 运行

    10 13 1 * * /root/bin/full-backup.sh
    
  5. 每个工作日 11 p.m 运行。

    0 23 * * 1-5 /root/bin/incremental-backup.sh
    

4. crontab常用的命令

service crond start    //启动服务
service crond stop     //关闭服务
service crond restart  //重启服务
service crond reload   //重新载入配置
service crond status   //查看服务状态 
crontab –e             //往 cron 中添加一个作业
crontab –e             //修改 crontab 文件. 如果文件不存在会自动创建。 
crontab –l             //显示 crontab 文件。 
crontab -r             //删除 crontab 文件。
crontab -ir            //删除 crontab 文件前提醒用户
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值