强行禁用特定的 cron.{hourly,daily,weekly} 脚本

强行禁用特定的 cron.{hourly,daily,weekly} 脚本

在我管理的各种系统上,都有通过常用/etc/cron.{hourly,daily,weekly}布局运行的 cron 脚本。我想知道是否有任何常见的“禁用此脚本”功能。

显然,只需从给定目录中删除某些内容即可禁用它,但我正在寻找更持久的解决方案。删除/etc/cron.daily/slocate可以禁用我家用机器上的 Nightly updatedb(我从未使用过slocate),但下次我升级 slocate 包时,我很确定它会重新出现。

我最感兴趣的两个发行版是 Gentoo 和 OpenSUSE,但我希望有一个广泛实施的机制。我拥有的两个发行版都使用 vixie-cron(不确定这是否重要)。

答案1

您应该能够chmod -x scriptname禁用脚本但保留文件不变。

答案2

run-parts 不会执行名称中带有点的作业,因此

mv /etc/cron.d/job /etc/cron.d/job.disabled

就可以了。

答案3

通常通过以下方式cron.daily调用,/etc/crontab例如

run-parts --report /etc/cron.daily

man run-parts 为您提供选择。

run-parts --test /etc/cron.daily显示哪些作业已执行但尚未运行。

我更喜欢创建一个“禁用”子目录并将我的工作移到那里。

无论如何,如果你更新一个包,那么这个任务很可能会再次执行,或者被删除的“x”位可能会被恢复

答案4

如果您使用 cfengine (https://cfengine.com/) 您可以使用 disable 来执行此操作。您只需为主机组编写一个承诺文件,它将在下一次 cfagent 运行中自行应用。使用 puppet 或 chef 或其他任何工具执行此操作也应该相当简单。

相关内容