from http://justcheckingonall.wordpress.com/2009/06/28/cron-does-not-run-scripts/

Why cron does not run cron.hourly/daily/weekly/monthly scripts?
Posted by JustChecking on June 28, 2009

Your scripts in /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/, or
/etc/cron.monthly/ do not run?  The problem is: if your script filename
contains dot e.g. when the file name contains extension (script.sh), the script
is not run by run-parts.  So, all you have to really do is rename the script,
or put a extension-less symlink to the script in the folder.

The reason is aâ"bug" in run-parts, that run-parts fails silently on such
files.  run-parts is used by cron to execute scripts in the /etc/cron.xxx
directories -- take a look at /etc/crontab file, it contains lines with:
run-parts --report /etc/cron.hourly.

This is not really a bug, see man run-parts, but the description is not the clearest:
    If neither the --lsbsysinit option nor the --regex option is given then
    the names must consist entirely of upper and lower case letters, digits,
    underscores, and hyphens.

You can always edit the /etc/crontab file, to include the --regex option for
more general file names, but imo itâit's easier to just get rid of the
extension