我希望我的投影机能够在商场开业之前开机,在商场closures时关机。 所以我创build了crontab条目(我把它放在/etc/cron.d/mall),但是今天( Thu Nov 22 18:58:29 EST 2012是该服务器上的当前date ),获得了power-off.sh脚本在17:20执行(参见下面的syslog摘录)。
作为11月22日星期四,我预计power-off.sh脚本将在21:20执行,按照下面的第四个crontab行。
为什么power-off.sh在17:20执行? 我的crontab条目有什么问题?
/etc/cron.d/mall内容:
40 9 22-30 Nov Mon-Sat myuser /usr/local/projectors/power-on.sh 40 10 22-30 Nov Sun myuser /usr/local/projectors/power-on.sh 20 18 22-30 Nov Mon-Wed myuser /usr/local/projectors/power-off.sh 20 21 22-30 Nov Thu-Fri myuser /usr/local/projectors/power-off.sh 20 17 22-30 Nov Sat-Sun myuser /usr/local/projectors/power-off.sh 40 9 1-22 Dec Mon-Sat myuser /usr/local/projectors/power-on.sh 40 10 1-22 Dec Sun myuser /usr/local/projectors/power-on.sh 20 21 1-22 Dec Mon-Fri myuser /usr/local/projectors/power-off.sh 20 17 1-22 Dec Sat-Sun myuser /usr/local/projectors/power-off.sh
系统日志摘录:
$ grep power-off.sh /var/log/syslog Nov 22 17:20:01 lanner-ubu-c2d CRON[23007]: (myuser) CMD (/usr/local/projectors/power-off.sh)
我最好的猜测是,它不能处理Sat-Sun因为这在crontab(5)的手册页:
Names can also be used for the ``month'' and ``day of week'' fields. Use the first three letters of the particular day or month (case doesn't mat‐ ter). Ranges or lists of names are not allowed.
这意味着你的一些行是不正确的,可能会导致意外的或至less没有logging的行为。
所以,我build议把你的星期限制改为数字。
从crontab(5)手册页:
注意:命令执行的date可以通过两个字段中的date和星期几来指定。 如果两个字段都受限制(即不是*),则当任一字段与当前时间匹配时,将运行该命令。 例如,
30 4 1,15 * 5会在每个月的1号和15号以及每个星期五的凌晨4点30分执行命令。