博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux crontab 用法分析
阅读量:4220 次
发布时间:2019-05-26

本文共 1724 字,大约阅读时间需要 5 分钟。

crontab是Linux平台上实现任务定时调度的功能。

基本格式如下:

*      *     *     *      *    command

分    时    日    月     周   命令

0-59  0-23 1-31  1-12  0-6 command

特殊符号的含义:

*:代表取值范围内的数字

/:代表“每”

-:代表从某个数字到某个数字

,:代表分散几个离散的数字

与crontab服务相关的几个命令:

1)查看crontab是否开启(两种方法)

方法一:ps –ef|grep crond

方法二:service crond status

2)crontab服务启动与关闭相关命令

启动crontab服务: /sbin/service crond start

关闭crontab服务: /sbin/service crond stop

重启crontab服务: /sbin/service crond restart

重新载入crontab服务: /sbin/service crond reload

3)如何编辑crontab任务(两种方式)

(1)针对系统任务(在/etc/crontab中添加)

(2)针对具体用户任务(通过crontab –e 添加)

实际上,crond服务每分钟不仅要读一次/var/spool/cron内的所有文件(这里面有各个用户的任务),还需要读一次/etc/crontab。因此,我们可以知道当我们修改了配置文件,最长一分中内生效。

4)crontab中常用的几个命令

crontab –l   //列出某个用户cron服务的详细内容

crontab –e   //编辑某个用户的cron服务

crontab –r    //删除某个用户的cron服务

5)举几个crontab的栗子:

/usr/local/etc/rc.d/lighttpdrestart

每晚21:30重启apache

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpdrestart

每月1、10、22日的4:45重启apache

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpdrestart

每周六、周日的1:10重启apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpdrestart

每天18:00至23:00之间每隔30分钟重启apache

0 23 * * 6 /usr/local/etc/rc.d/lighttpdrestart

每星期六的11:00 pm重启apache

* */1 * * * /usr/local/etc/rc.d/lighttpdrestart

每小时重启apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpdrestart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * * /usr/local/etc/rc.d/lighttpdrestart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpdrestart

一月一号4点重启apache

关于上面举的crontab栗子的总结:

首先要明白有5个时间参数,默认是*,即代表所有可能取值,取值的范围见上面基本格式的最后一行,如果将5个参数都设置为*,则粒度是最细的即:每月每周每日每小时每分钟,然后,我们根据需要,去泛化这些取值,便可以实现不同的任务调度需求。比如:我想要每三分中执行一次:则将之前本来分钟可能取值为1到59的范围除以3,即可实现每三分执行一次,命令如下:

*/3 * * * * 你需要执行的命令

6)问题:crontab中任务如果执行出错了呢?

比如正对root用户的crontab,可以在 /var/spool/mail/root文件中,查看crontab的执行日志记录。比如:

将echo命令写成cho,然后,运行crontab命令如下:

打开/var/spool/mail/zhou.hg可以看到如下日志:

你可能感兴趣的文章
深入理解java多态性
查看>>
Java新手进阶:细说引用类型
查看>>
osg中使用MatrixTransform来实现模型的平移/旋转/缩放
查看>>
(一) Qt Model/View 的简单说明
查看>>
(二)使用预定义模型 QStringListModel例子
查看>>
UVM:7.4.5 加入存储器
查看>>
UVM:7.5.1 期望值与镜像值
查看>>
UVM:7.5.2 常用操作及其对期望值和镜像值的影响
查看>>
UVM:7.6.1 检查后门访问中hdl 路径的sequence
查看>>
UVM:7.6.2 检查默认值的sequence
查看>>
UVM:7.7.1 使用reg_predictor
查看>>
UVM:7.7.2 使用UVM_PREDICT_DIRECT功能与mirror 操作
查看>>
UVM:7.7.3 寄存器模型的随机化与update
查看>>
UVM:7.7.4 扩展位宽
查看>>
UVM:7.8.1 get_root_blocks
查看>>
UVM:7.8.2 get_reg_by_offset 函数
查看>>
UVM:8.1.1 任务与函数的重载
查看>>
UVM:8.1.2 约束的重载
查看>>
UVM:8.2.2 重载的方式及种类
查看>>
UVM:8.2.3 复杂的重载
查看>>