Why does cron.weekly not run?

When I noticed that the backupscript I placed in /etc/cron.weekly on my Debian6 server isn't executed I placed this small script in it, to see if the weekly cronjob is executed at all:

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

saved it as

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

When I checked today, the logfile it was supposed to create did not exist.
The crontab looks like the following (which should be the default debian6 crontab to my knowledge):

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h 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 )

Everything that shows up of the weekly cronjob in any logfiles is this line:

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

Side note: cron.daily seems to work since logrotate works. cron.hourly has no scripts in it.

Any ideas on what could possibly be going wrong?


The cron.weekly scripts are started by run-parts which skips all files with extension. Rename runcheck.sh to runcheck and it should do


comm1 || comm2 || comm3 || comm4

will be executed until first retval = 0 will be returned (from left to right). The rest of chained commands are optimized by interpreter and NOT executed at all

If test -x /usr/sbin/anacron return zero as retval, no other commands will be executed.