在我管理的各种系统上,都有通过常用/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 或其他任何工具执行此操作也应该相当简单。