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

ben*_*izi 30 cron cron.daily

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

显然,简单地从给定目录中删除某些内容将禁用它,但我正在寻找更持久的解决方案。删除/etc/cron.daily/slocateupdatedb在我的家用机器上禁用夜间(我从不使用slocate),但是下次我升级 slocate 包时,我很确定它会重新出现。

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

Den*_*son 51

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

  • 这可能会或可能不会被包管理系统撤消。您可以通过在 `chmod` 之后执行 `chattr +i scriptname` 来使其更加健壮。 (6认同)
  • @JonathanY。:这就是`lsattr` 的用途——删除_scary_(它列出了文件的属性)。 (2认同)

小智 14

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

mv /etc/cron.d/job /etc/cron.d/job.disabled
Run Code Online (Sandbox Code Playgroud)

会做的伎俩。

  • 升级程序时返回是正在使用的打包工具的副作用,不能通过简单的方法修复,不是Cron的错。一些软件包系统核对并铺平以前的文件,其他的则区分新旧文件,并提示您是否有要查看的更改。无论如何,在这一点上,产生意外行为的更新应该是 Unix 系统管理的一个令人沮丧但例行的部分。有太多的软件包移动得太快,以至于无法定期检查所有更改对每个单独环境的影响。 (2认同)

小智 11

通常通过像 eg 这样的行 cron.daily调用/etc/crontab

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

man run-parts 给你选择。

run-parts --test /etc/cron.daily 显示哪些作业在不运行的情况下被执行。

我更喜欢将子目录设为“禁用”并将我的工作转移到那里。

在任何情况下,如果您更新包,则工作可能会再次就位或删除的“x”位得到恢复