使用Crontab实现数据库的定时备份和循环删除

一、引言

在最近的工作中,遇到过几次这样的烦恼:同事在没有任何说明和通知的情况下,自己改变了测试数据库的结构和数据,导致我的程序本来运行挺好的,被这样一搞,就GG了……查看日志才发现操作数据库error……(我真的很鄙视这种行为的)……
被同事这样一搞,数据库的数据不对了,由于我们又没有专门的运维,所以还是挺头疼的事,所以就只能跳进这个坑,一起坑下去……

今天心血来潮,就想着写个shell脚本,让服务器每天定时的把数据库备份一下,再把10天之前的备份文件删除,以防止数据库不能恢复,所以就学习了一下linux的crontab任务调度。

二、Crontab的介绍

1、crontab命令

(1)基本语法:crontab  [选项]
(2)常用选项
		-e 编辑crontab定时任务
		-l 查询crontab任务
		-r 删除当前用户所有的crontab任务

2、快速入门

(1)设置任务调度文件:/usr/crontab
(2)设置个人任务调,执行命令:crontab –e
(3)接着输入任务到调度文件
		如:*/1 * * * * ls –l /etc/ > /tmp/to.txt 
意思:每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令

3、简单案列:每隔1分钟,就将当前的日期信息,追加到 /tmp/mydate 文件中

1)先编写一个脚本文件:/home/mytask.sh
	date >> /tmp/mydate
2)给mytask.sh一个可执行权限
	chmod 744 /home/mytask.sh
3)crontab -e (当保存退出后就可以执行该任务了)
	* /1 * * * /home/mytask.sh
4) 去/tmp目录下查看mydate文件

4、上述几个*占位符的说明
这里写图片描述
5、特殊符号的说明
这里写图片描述
6、特定时间执行任务案列
这里写图片描述

三、数据库定时备份脚本实现

1、需求:

1) 每天凌晨 1:30 ,备份数据库到指定目录:/data/backup/db;
2) 备份开始和备份结束能够给出相应的提示信息;
3) 备份后的文件要求以备份时间为文件名,并打包成.tar.gz 的形式,比如:2018-04-6_200201.tar.gz;
4) 在备份的同时,检查是否有10天前备份的数据库文件,如果有就将其删除;

2、步骤

(1)在/home/shell/backup.sh下编写shell脚本
这里写图片描述
(2)给backup.sh一个可执行权限

		chmod 744 /home/shell/backup.sh

(3)crontab -e
这里写图片描述
这里写图片描述

(4)可以去/home/data/backup目录下去查看备份文件

四、总结

其实对于crontab的使用很简单,注意一下参数的意思就行了,主要是备份的shell脚本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

止步前行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值