我的理解是,我可以将具有简单计划的系统作业添加到等等,并将具有自定义计划的系统作业添加/etc/cron.hourly/
到./etc/cron.daily/
/etc/cron.d/
但是在大型 IT 部门中,可能有几个人负责一台服务器,那么目录 /etc/cron.d 可能是安装 crontabs 的最佳位置 - 它是一个中心点,可以节省对它们的搜索!(CronHowTo)
我创建/etc/cron.d/testing
了以下内容:
# /etc/cron.d/testing: crontab entries for report generation
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15 13 * * 3 root /usr/bin/supervisorctl start reports
00 16 * * 4 root /usr/bin/supervisorctl start reports
该文件具有以下属性:
user@server:/etc/cron.d$ ls -la
total 28
drwxr-xr-x 2 root root 4096 Jul 14 12:57 .
drwxr-xr-x 146 root root 12288 Jul 14 13:48 ..
-rw-r--r-- 1 root root 188 Feb 20 2014 anacron
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rwxr--r-- 1 root root 286 Jul 14 13:43 testing
我在星期四下午 1 点重新启动了机器,预计它会在 13:15 触发报告。(计划是测试这个调用,但也安排在每周五下午 4 点。)
但是什么也没发生。/var/log/syslog
或主管日志中没有错误(或任何事件) 。我使用相同的命令/etc/cron.daily/testing
并且它有效:
#!/bin/sh
/usr/bin/supervisorctl start reports
...我可以独立调用主管作业。所以我不认为问题出在主管工作或我的调用中。
我究竟做错了什么?(问题记录在哪里?)
用于 crontab 文件的格式
/etc/cron.d/testing
是正确的。(应该是,抄来的/etc/cron.d/anacron
)问题是我从 Windows 修改了它,并且可能弄乱了行尾。我重新克隆
anacron
,在 Ubuntu 上编辑它,一切正常。(我仍然不知道错误消息(如果有的话)记录在哪里。)