Robustly disabling specific cron.{hourly,daily,weekly} script
On various systems that I administer, there are cron scripts that get run via the commonly-used /etc/cron.{hourly,daily,weekly}
layout. What I want to know is whether there's any common 'disable this script' functionality.
Obviously, simply deleting something out of a given directory will disable it, but I'm looking for a more permanent solution. Deleting /etc/cron.daily/slocate
will work to disable the nightly updatedb
on my home machine (where I never use slocate
), but next time I upgrade the slocate package, I'm pretty sure it'll reappear.
The two distributions I'm most interested in are Gentoo and OpenSUSE, but I'm hoping there's a widely-implemented mechanism. Both distros as I have them use vixie-cron (not sure it matters).
Solution 1:
You should be able to chmod -x scriptname
to disable a script but leave the file in place.
Solution 2:
run-parts does not execute jobs which have a dot in their name, so
mv /etc/cron.d/job /etc/cron.d/job.disabled
will do the trick.
Solution 3:
Usually cron.daily
is invoked via /etc/crontab
through a line like e.g.
run-parts --report /etc/cron.daily
man run-parts
gives you the options.
run-parts --test /etc/cron.daily
shows which jobs are executed without running them.
I prefer to make a subdir 'Disabled' and move my jobs there.
In any case if you update a package it is likely that the job gets into place again or that removed 'x' bits get restored