例行性工作调度

[TOC]

循环性执行的例行性工作调度

循环执行的例行性工作调度由cron(crond)服务 控制.Lnux上有非常多的例行性工作,因此这个服务是默认启动的.

  • 使用者的设置
1
2
3
/etc/cron.allow 允许使用crontab的用户
/etc/cron.deny 不允许使用crontab的用户
allow优先级优于deny

当用户使用crontab指令创建工作调度之后,该项工作被纪录到/var/spool/cron里,而且是以账号作为判别的.如:用Windus使用后会纪录到/var/spool/cron/Windus注意:不要使用vim编辑该文件,可能由于输入法错误导致无法执行cron
另外,cron执行的每一项任务都纪录到/var/log/cron中.

1
2
3
4
5
6
[root@study ~]# crontab [-u username] [-l|-e|-r]
选项与参数:
-u :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作调度;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。

字段意义

每项工作格式都有六个字段,意义为:

代表意义 日期 指令
数字范围 0~59 0~23 1~31 1~12 0~7 执行指令

注意:周指令0和7都代表星期天



























特殊字符
字符 意义
*(星号) 代表任何时刻都接受的意思!举例来说,范例一内那个日、月、周都是 , 就代表着“不论何月、何日的礼拜几的 12:00 都执行后续指令”的意思!
,(逗号) 代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:0 3,6 command
时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!
-(减号) 代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:20 8-12 command
仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!
/n(斜线) 那个 n 代表数字,亦即是“每隔 n 单位间隔”的意思,例如每五分钟进行一次,则:/5 command 用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!
  • crond服务读取配置文件位置
1
2
3
4
5
- /etc/crontab
- /etc/cron.d/*
- /var/spool/cron/*

前两个跟系统有关的配置文件,后一个跟用户有关