/ etc / crontab和“ crontab -e”之间的区别


Answers:


51

正如Ignacio所说,/etc/crontab是系统范围的crontab。

的格式/etc/crontab如下:

# m h dom mon dow user      command
*   *  *   *   *  someuser  echo 'foo'

虽然crontab -e是每个用户,但值得一提的是,不带任何-u参数的crontab命令转到当前用户crontab。您可以crontab -e -u <username>编辑特定用户的crontab。

请注意,在每个用户的crontab中,没有“用户”字段。

# m h  dom mon dow  command
*   *   *   *   *   echo 'foo'

crontabs的一个令人困惑的方面是,root也具有自己的crontab。例如,crontab -e -u root将不会编辑,/etc/crontab 请参阅配置cron

在大多数Linux发行版中,每个用户的crontab通常存储在:/var/spool/cron/crontabs/<username>(vixie-cron)。

基于RHEL的发行版存储在中/var/spool/cron/<username>。(克罗妮)


仅供参考,上面给出的路径不正确:每个用户的crontab存储在/ var / spool / cron / crontabs / <用户名>中(我两次尝试提交此简单更正。)
MartyMacGyver

1
...并且现在已更正。
MartyMacGyver'1

实际上,它是/var/spool/cron/root为RHEL 6系统上root的每用户crontab 存储的。还没有检查过Ubuntu,但是说“通常”似乎有点麻烦。
通配符

@Wildcard我认为“通常”是一个很恰当的词。RHEL发行版船带有“ cronie”(我相信还有anacron),这是他们的ISC-Cron / vixie cron的分支。我认为这并不是一件容易的事,无论如何我都更新了答案以包含更多细节。
skrewler

为了快速查找发行版中的路径,请path[crontabs]CFEngine“路径”库中搜索字符串,然后检查上下文(前面的上下文行看起来例如redhat::)。变化比您想象的还要多。例如SUSE将它们放入/var/spool/cron/tabs。(提取发行版差异是CFEngine最初创建的原因之一,因此通常是一个很好的参考。)
Wildcard

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.