目录 cron.d(如/etc/cron.d/
)和之间的主要区别是什么crontab
?
据我了解,人们可以创建一个类似的文件/etc/cron.d/my_non_crontab_cronjobs
,并将想要的任何内容放入其中,就像将它们放入crontab
via中一样crontab -e
。
那么两者之间的主要区别是什么?
答案1
这些差异详细记录在联机cron(8)
帮助页在 Debian 中。主要区别在于,它/etc/cron.d
由单独的文件填充,而crontab
每个用户管理一个文件;因此,使用脚本更容易管理内容(用于自动安装和更新),并且使用编辑器/etc/cron.d
更容易管理(实际上对于最终用户而言)。crontab
其他重要的区别是,并非所有发行版都支持/etc/cron.d
,并且 中的文件/etc/cron.d
必须满足一定数量的要求(除了有效的 cron 作业之外):它们必须由 root 拥有,并且必须符合run-parts
' 命名约定 (没有点,仅限字母、数字、下划线和连字符)。
如果您正在考虑使用/etc/cron.d
,通常值得考虑使用/etc/cron.hourly
、/etc/cron.daily
、/etc/cron.weekly
或之一/etc/cron.monthly
。
答案2
我想说,主要区别是显而易见的:普通用户/etc/crontab
无法修改,而该工具编辑/etc/cron.d
的每用户 crontab 则可以。 (当然,受和限制。)当然,在您是管理员的系统上,您可以使用其中任何一个。在共享系统上,普通用户只能使用一个。/var/spool/cron
crontab
cron.allow
cron.deny
与此相关的是系统范围文件中的额外字段,即作业运行时使用的用户名。
答案3
除了其他答案中指出的差异之外,crontab -e
从使用的角度来看,它的一个主要缺点是,您很容易因一个简单的错误而意外删除所有 crons。
命令crontab -r
会在没有警告或提示的情况下删除 crontab 中的所有 cron 条目。你猜怎么着,用于编辑的字母e
就r
在键盘的旁边!
因此/etc/cron.d/
>>crontab -e