Cron 和 Crontab 的区别?

Posted

技术标签:

【中文标题】Cron 和 Crontab 的区别?【英文标题】:Difference between Cron and Crontab? 【发布时间】:2014-03-14 09:24:23 【问题描述】:

我无法理解这个问题的答案:“croncrontab 有什么区别。”它们都是调度程序,一个执行文件一次,另一个定期执行文件,还是cron 调度作业,crontab 将它们存储在表或文件中以供执行?

Wiki page Cron 提及:

cron是由一个crontab(cron表)文件驱动的,一个配置文件 指定按给定时间表定期运行的 shell 命令。

wiki.dreamhostcrontab 提到:

在 Unix 和类 Unix 操作系统中发现的 crontab 命令是 用于安排定期执行的命令。它读取一个 来自标准输入的一系列命令并将它们收集到一个文件中 称为“crontab”,稍后阅读,其说明是 执行。

具体来说,当我安排要重复的工作时:(引用自维基

1 0 * * *  printf > /var/log/apache/error_log

或只执行一次作业

at -f myScripts/call_show_fn.sh 1:55 2014-10-14

我是否在crontab 中推送的两个命令中都执行cron 函数,或者第一个是crontab,第二个是cron 函数?

【问题讨论】:

【参考方案1】:

cron 是运行计划操作的服务的通用名称。 crond 是在后台运行并读取 crontab 文件的守护程序的名称。 crontab 是包含格式为

的作业的文件
minute hour day-of-month month day-of-week  command

crontabs 通常由系统存储在/var/spool/<username>/crontab 中。这些文件不能直接编辑。您可以使用 crontab 命令调用文本编辑器(您为 EDITOR 环境变量定义的内容)来修改 crontab 文件。

cron 有多种实现方式。通常会有每个用户的 crontab 文件(使用命令crontab -e 访问)以及/etc/cron.daily/etc/cron.hourly 等中的系统 crontab。

在您的第一个示例中,您正在通过 crontab 安排作业。在第二个示例中,您使用 at 命令将作业排队以供以后执行。

【讨论】:

so..在我的示例命令中..都是cron,它们存储在crontab文件中??? 您的第一个示例将放在 crontab 文件中。您可以通过 crontab -e 添加它。第二个示例使用 at 命令并且不会在 crontab 中。 所以第二个例子既不是 cron 也不是 crontab 因为 at?? 是的,没错。您可以在不运行 cron 守护程序的情况下使用 atat 通常用于一次性操作,而 cron 用于重复任务。 出色的拆解。我遇到过的最简洁明了的描述。

以上是关于Cron 和 Crontab 的区别?的主要内容,如果未能解决你的问题,请参考以下文章

cron、crontab 和 cronjob 之间的区别?

周期性执行任务:Cron用法(CentOS7)

“sudo crontab -e”和“crontab -e”之间的 linux 区别

Go语言版crontab

Linux配置定时,使用 crontab -e 与 直接编辑 /etc/crontab 的区别

linux crontab 定时任务执行