我看到 Ubuntu 使用/etc/cron.{daily,weekly,monthly}
cron 任务。我还看到有些东西(例如updatedb
from mlocate
)将它们的任务放在那里:
$ dpkg -L mlocate|grep y/m
/etc/cron.daily/mlocate
有时,我想禁用其中一些作业(mlocate
在本例中)。我显然可以sudo mv /etc/cron.daily/mlocate ~/cron.daily-dont-run
这样做。但是,有两个问题:
- 这是如何管理的?是否有类似
service
管理 SysV init 脚本或覆盖的方法,如Upstart 简介,10.41.1 覆盖文件? 我想告诉它“好的,我不想让你启动”,但不触及已安装的内容(请参阅下一项了解原因之一) - 如果我删除然后重新安装
mlocate
,我会再次获得 cron.daily 条目。另外,我猜(这是真的吗?)升级可能不会顺利进行(例如,如果 cron 条目中存在依赖项,它将生成 cron.daily 条目或可能破坏软件包)。
如果有,您会如何处理/解决上述问题?
答案1
一种方法是chmod -x /usr/bin/updatedb.mlocate
。 cron 脚本会检查 +x 位,如果不可执行,则会退出。应该比弄乱 cron 文件更不具侵入性,但需要注意的是,手动运行 updatedb.mlocate 会更复杂。