运维常用工具crontab

-u user 指定crontab的用户

-l  以标准输出显示执行计划

-r 清除当前的crontab计划任务

-e 编辑crontab

-i 与-r参数同时使用以交互形式提醒用户。

-s 将当前selinux上下文添加到crontab文件的MLS_LEVEL级别

通过查看crontab的配置文件# cat /etc/crontab 获取格式信息

Linux之Crontab执行计划_Linux

从上述描述可以看出crontab配置文件主要定义了执行crontab的环境(SHELL类型、执行命令的路径、邮件发送的对象)

第一个*表示分钟,范围(0-59)

第二个*表示小时,范围(0-23)

第三个*表示月份中的天数,范围(1-31)

第四个*表示月份,范围(1-12)或者以小写字符表述(jan,feb,mar,apr,may,jun,jul,oct,nov,dec)

第五个*表示星期,范围(0-6)星期天以0或7表示,也可以以字符形式表示(sun,mon,tue,wed,thu,fri,sat)。

 

以分钟为单位

*/5 * * * *

形式2:

1,6,11,16,21,26,31,36,41,46,51,56 * * * * root 
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root 
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root  
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root


以小时为单位

* */1 * * *
* 0-23/3 * * * 每隔3小时
* 0,1,2 * * * 分别在0,1,2点执行

 

以日为单位

* * */1 * * 每日
* * 1,15,30 * * 分别在0,15,30号运行 
* * 1-29 * *  每月1至29号执行

 

以月为单位

* * * */1 *
* * * 1-10 * 1至10月份执行

 

以周为单位

* * * * 0-6


crontab的另外一种指令形式是指定目录的形式,以这种形式可以直接读取目录中的cron计划。

*/5 * * * * root run-parts /etc/cron.daily


那么通常用户创建的crontab执行计划会放在哪里呢?

# ll /var/spool/cron/
total 12
-rw------- 1 nagios nagios    53 Apr  9 12:38 nagios
-rw------- 1 oracle oinstall  53 Dec 15 17:18 oracle
-rw------- 1 root   root     142 Dec 13 05:15 root


另外cron通过cron.allow或者cron.deny来控制用户使用crontab的权限

系统默认读取/etc/cron.deny中的内容