cron.d 与 root 的 crontab 的用途

cron.d 与 root 的 crontab 的用途

在一次令人惊奇的迂腐表现中,我和一位同事就 crontab 的各个位置的预期用途争论了好几天。

问题的核心是我们用来向客户推送其数据存档的备份脚本。有些人希望每周推送一次,而其他人则希望每月的某一天推送一次 - 因此我们当前的 crontab 相当冗长。该实用程序本身并不奇怪,只是一个小节点脚本,它会通过传递给它的不同客户 ID 集定期触发。

由于它们的功能相同,那么实用程序放置 crontab 最正确的位置是什么?

  • 在 root 用户个人表中 ( sudo crontab -e)
  • /etc/crontab/etc/cron.d

TL:DR;各个 cron 位置的预期用途是什么?需要无需人工交互即可运行的实用程序的计划应该放在哪里?

答案1

由于这是系统功能,因此我建议使用系统 crontab。至于哪一个,我认为实际上没有任何区别,而且我还没有看到任何指示,甚至促卵泡激素没什么好说的。在 CentOS 7 系统上,我必须手动执行 man crontab(5) 说

/etc/cron.d/ 中的作业
cron.d 和 /etc/crontab 中的作业是系统作业,通常供多个用户使用,因此还需要用户名。第一行上的 MAILTO 是可选的。

我将使用 /etc/cron.d

答案2

我个人更喜欢按照答案去做is the English way,但为了公平起见,我觉得有义务分享我向 Paul Vixie(我能想到的该领域最高权威)询问过的事情。他的回答是,这属于 root 的个人 crontab。

我:- 系统 cron(/etc/crontab 或它的抽象)与 root 的个人 crontab。

P Vixie:啊。在这种情况下,将其放入 root 的个人 crontab 中,并尝试将系统 crontab 用于操作系统事务(也就是说,根本不要修改它。)

相关内容