crontab命令定时备份执行脚本

时间:2024-04-14 10:20:59

一、tar 命令备份

参数:-c: 建立压缩档案、-z:有gzip属性的、-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名

有三个文件

我们将当前目录下的文件全部打包

crontab命令定时备份执行脚本

利用date生成特定文件名称

tar -czf log-`date +%Y%m%d`.tar.gz ./

crontab命令定时备份执行脚本

二、crontab

我们先查看下命令

crontab命令定时备份执行脚本

crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行。

crontab命令定时备份执行脚本

minute: 表示分钟,可以是从0到59之间的任何整数。

hour:表示小时,可以是从0到23之间的任何整数。

day:表示日期,可以是从1到31之间的任何整数。

month:表示月份,可以是从1到12之间的任何整数。

week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

或者这个表好理解一点

crontab命令定时备份执行脚本

在时间表示中,还有一些特殊符号需要学习

crontab命令定时备份执行脚本

一些帮助理解的例子

crontab命令定时备份执行脚本

做一个简单的练习,在当前目录下,创建一个文件

crontab命令定时备份执行脚本

crontab命令定时备份执行脚本

让系统每隔 2 分钟就向 test1 文件中写入一行"xlglvc",验证一下系统定时任务是否会执行

首先进入编辑模式

crontab命令定时备份执行脚本

编辑命令

*/2 * * * * /bin/echo "xlglvc" >> />

crontab命令定时备份执行脚本

我们查看这个文件信息

crontab命令定时备份执行脚本

我们可以使用下面的命令查询当前用户定时任务或删除当前用户定时任务

查询当前用户定时任务

crontab命令定时备份执行脚本

删除当前用户定时任务

crontab命令定时备份执行脚本

我们把上面的打包压缩命令做一下更改,将打包压缩命令放到脚本中

crontab命令定时备份执行脚本

我们将时间范围缩小到秒

tar -czf log-`date +%Y%m%d_%H%M%S`.tar.gz ./

crontab命令定时备份执行脚本

执行脚本

crontab命令定时备份执行脚本

系统每分钟执行一次这个脚本

crontab命令定时备份执行脚本

我们查看下任务

crontab命令定时备份执行脚本

我们查看这个内容

crontab命令定时备份执行脚本

更改下文件权限,我们再查看任务

crontab命令定时备份执行脚本

可以考虑下面三个练习

1、让系统在每周一的凌晨3点01分重启一次

2、在每月1日、10日、15 日的凌晨 00 点 30 分都定时执行日志备份脚本

3、结合前面邮件的发送命令,定时发送打包的压缩文件

网上练习参考

##每月每天凌晨3点30分和中午12点20分执行test.sh脚本

30 3,12 * * *  /home/test.sh

##每月每天每隔6小时的每30分钟执行test.sh脚本

30 */6 * * *  /home/test.sh

##每月每天早上8点到下午18点每隔2小时的每30分钟执行test.sh脚本

30 8-18/2 * * * /etc/init.d/network restart

##每月每天晚上21点30分执行test.sh脚本

30 21 * * *  /etc/init.d/network restart

##每月1号、10号、22号凌晨4点45分执行test.sh脚本

45 4 1,10,22 * * /etc/init.d/network restart

##8月份周一、周日凌晨1点10分执行test.sh脚本

10 1 * 8 6,0 /etc/init.d/network restart

##每月每天每小时整点执行test.sh脚本

00 */1 * * *  /etc/init.d/network restart

在书写 crontab 定时任务时,需要注意以下几个事项:

1、6 个选项都不能为空,必须填写。如果不确定,则使用“*”代表任意时间。

2、crontab 定时任务的最小有效时间是分钟,最大有效时间是月。像 2018 年某时执行、3 点 30 分 30 秒这样的时间都不能被识别。

3、在定义时间时,日期和星期最好不要在一条定时任务中出现,因为它们都以天为单位,非常容易让管理员混淆。

4、在定时任务中,不管是直接写命令,还是在脚本中写命令,最好都使用绝对路径。有时使用相对路径的命令会报错。

品略图书馆 http://www.pinlue.com/