cron.d(如 /etc/cron.d/ 中)和 crontab 之间有什么区别?

cron.d(如 /etc/cron.d/ 中)和 crontab 之间有什么区别?

目录 cron.d(如/etc/cron.d/)和之间的主要区别是什么crontab

据我了解,人们可以创建一个类似的文件/etc/cron.d/my_non_crontab_cronjobs,并将想要的任何内容放入其中,就像将它们放入crontabvia中一样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/croncrontabcron.allowcron.deny

与此相关的是系统范围文件中的额外字段,即作业运行时使用的用户名。

答案3

除了其他答案中指出的差异之外,crontab -e从使用的角度来看,它的一个主要缺点是,您很容易因一个简单的错误而意外删除所有 crons。

命令crontab -r会在没有警告或提示的情况下删除 crontab 中的所有 cron 条目。你猜怎么着,用于编辑的字母er在键盘的旁边!

因此/etc/cron.d/>>crontab -e

相关内容