系统管理员工具包: 时间和事件管理
2008-11-11 08:12:32 来源:WEB开发网而指定以下时间:0 23 * * * do-something,命令将在每晚 11 点时运行。
如果指定多个值,则会对每个值进行匹配。例如,要每 15 分钟执行一次命令,请使用以下语句:
0,15,30,45 * * * * do-something
或者,可以通过使用以下命令指定命令从星期一到星期五每六个小时运行一次:
0 0,6,12,18 * * 1,2,3,4,5 do-something
可以在 crontab 中包含任意多的行,如果希望,可以多次引用相同的命令,而这在其他情况下则相当难于实现。例如,一个命令要在星期一到星期四的下午 6 点运行,但在星期五时要在午餐时间运行,则可以使用以下两行语句:
0 18 * * 1,2,3,4 do-something
0 12 * * 5 do-something
对于前两个选项(分和时)应该小心处理;如果未指定这两个选项(使用星号),将导致在匹配其他指定值的情况下,每分钟运行一次。例如,一个常见的错误是,希望在月初运行命令,但却使用了以下语句:
* * 1 * * do-something
这里的问题是,上述指定语句实际上会在每个月的第一天每分钟运行该命令一次。如果希望命令只运行一次,必须指定应执行命令的分和时的值:
0 12 1 * * do-something
省略分钟值,将至少让命令在匹配指定的时(和日期)的情况下每分钟运行命令一次。
虽然有这么大的灵活性,但仍然会出现很难(甚至不可能)使用 crontab 系统执行命令的情况。
处理手动计划
cron 的问题在于,尽管 crontab 中可用的所有不同选项提供了各种不同的可能性,但仍然有一些恼人的局限。
每月的最后一天
例如,要在 cron 中每月最后一天运行命令很困难,因为没有办法直接指定此信息。相反,您必须单独指定月份和其对应的最后一天。例如,在不是闰年的年份,可以结合使用以下三行语句:
更多精彩
赞助商链接