为什么cron.weekly不运行?

当我注意到我放在Debian6服务器上的/etc/cron.weekly中的backupscript没有执行时,我把这个小脚本放在它里面,看看每周的cronjob是否被执行:

#!/bin/bash echo 'CRON RAN' > /var/log/cron-weekly-runcheck.log 

保存为

 -rwxr-xr-x 1 root root 64 Jul 15 02:14 /etc/cron.weekly/runcheck.sh 

当我今天检查时,它应该创build的日志文件不存在。
crontab看起来像下面这样(据我所知,这应该是默认的debian6 crontab):

 SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # mh dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 1 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) 

在任何日志文件中显示的每周cronjob的一切都是这样的:

 Jul 16 06:47:01 wtwrp /USR/SBIN/CRON[29272]: (root) CMD (test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )) 

附注: cron.daily似乎工作,因为logrotate的作品。 cron.hourly没有脚本。

任何想法可能会出错?

cron.weekly脚本由run-parts启动,跳过所有带有扩展名的文件。 重命名runcheck.sh runcheck ,它应该这样做

comm1 || comm2 || comm3 || comm4

将被执行,直到返回第一个retval = 0(从左到右)。 链接命令的其余部分通过解释器优化,而不是执行

如果test -x /usr/sbin/anacron返回零作为retval,则不会执行其他命令。