Cron 和 Crontab 的区别?
Posted
技术标签:
【中文标题】Cron 和 Crontab 的区别?【英文标题】:Difference between Cron and Crontab? 【发布时间】:2014-03-14 09:24:23 【问题描述】:我无法理解这个问题的答案:“cron
和 crontab
有什么区别。”它们都是调度程序,一个执行文件一次,另一个定期执行文件,还是cron
调度作业,crontab
将它们存储在表或文件中以供执行?
Wiki page Cron
提及:
cron是由一个crontab(cron表)文件驱动的,一个配置文件 指定按给定时间表定期运行的 shell 命令。
但wiki.dreamhost 为crontab
提到:
在 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 守护程序的情况下使用 at。 at 通常用于一次性操作,而 cron 用于重复任务。
出色的拆解。我遇到过的最简洁明了的描述。以上是关于Cron 和 Crontab 的区别?的主要内容,如果未能解决你的问题,请参考以下文章
“sudo crontab -e”和“crontab -e”之间的 linux 区别