在我pipe理的各种系统上,有通过常用的/etc/cron.{hourly,daily,weekly}
布局运行的cron脚本。 我想知道的是,是否有任何常见的“禁用此脚本”function。
显然,从给定的目录中删除某些内容会将其禁用,但是我正在寻找一个更持久的解决scheme。 删除/etc/cron.daily/slocate
将工作,以禁用每天晚上updatedb
在我的家用机器(我从来没有使用slocate
),但下一次我升级slocate包,我敢肯定它会重新出现。
我最感兴趣的两个发行版是Gentoo和OpenSUSE,但我希望有一个广泛实施的机制。 这两个发行版,因为我有他们使用VIXIE-CRON(不知道这很重要)。
您应该能够通过chmod -x scriptname
来禁用脚本,但保留文件。
运行部分不会执行名称中有点的作业,所以
mv /etc/cron.d/job /etc/cron.d/job.disabled
会做的伎俩。
通常cron.daily
通过/etc/crontab
通过一行来调用,例如
run-parts --report /etc/cron.daily
man run-parts
给你的select。
run-parts --test /etc/cron.daily
显示执行哪些作业而不运行它们。
我宁愿做一个subdir“禁用”,把我的工作移到那里。
无论如何,如果你更新了一个包,那么这个工作很可能会再次到位,或者删除了“x”位
如果你从不使用它,你可以删除slocate包。
如果你使用cfengine( http://www.cfengine.org ),你可以用disable来做到这一点。 您只需为一组主机编写一个承诺文件,它将在下一次cfagent运行中应用。 用傀儡或厨师做什么或什么也应该很简单。
/etc/cron.daily et。 人。 脚本由一个名为run-parts的脚本运行。 该脚本各不相同。 例如,上面提到的–test开关不在我正在使用的机器上。
运行部分是一个bash脚本。 它是一个通常有用的工具,用于在作为参数给出的目录中运行所有脚本。 它通常在/ usr / bin / run-partsfind。
它有一个决定运行的逻辑纠结。 该代码可以解答你的问题,但是它也不尽相同。 所以你需要阅读代码才能安全。
在我看的版本中有一个逻辑,当在目录上工作时,检查/jobs.deny。 如果存在,则拒绝单独运行该文件中提到的任何脚本。 假设你有这个function,那真棒,因为当安装或升级安装的软件包时,它将继续工作。
如果你不想要用户crontabs,只要禁用你的服务列表中的crond。
在Debian和基于Debian的版本中,这只是从适当的/etc/rcX.d(对于运行级别X)中删除符号链接的问题。
我不知道如何处理SUSE或Gentoo中的服务。