每周 cron 从哪天/什么时间开始?

每周 cron 从哪天/什么时间开始?

我查看了 cron man,但没有发现任何有用的东西:(

有人知道吗?

答案1

尽管 Trevor 是正确的,但我在这里给出了另一种答案。

cron@weekly关键字的作用正如他提到的那样。然而,大多数发行版都习惯run-parts运行自己的计划 crontab 文件(每小时、每天、每周和每月),而这些文件并不使用 cron 的关键字。

例如,Ubuntu 有一个/etc/cron.weekly其中包含每个 cronjob 的单独文件。

这通常定义为/etc/crontab

Ubuntu 的 karmic 9.10 版本具有以下内容/etc/crontab

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

因此,Ubuntu 中的每周 crontab 于周日上午 6:47 运行

注意:在查找 crontab 实现的手册页时,您需要使用man 5 crontab而不是man crontab。后者只会为您提供 crontab 命令的语法。前者为您提供 crontab 实现细节。

答案2

@weekly 相当于:0 0 * * 0

因此它将在周日 00:00 运行。

答案3

答案就在 crontab 本身的手册页中,(man 5 crontab):

支持这些特殊的时间规范“昵称”,它们取代了初始的 5 个时间和日期字段,并以“@”字符为前缀:

@reboot    :    Run once after reboot.
@yearly    :    Run once a year, ie.  "0 0 1 1 *".
@annually  :    Run once a year, ie.  "0 0 1 1 *".
@monthly   :    Run once a month, ie. "0 0 1 * *".
@weekly    :    Run once a week, ie.  "0 0 * * 0".
@daily     :    Run once a day, ie.   "0 0 * * *".
@hourly    :    Run once an hour, ie. "0 * * * *".

那么,现在是0 0 * * 0,也就是星期日的午夜。

(即星期几第 0 天第 0 小时第 0 分钟,即星期日。)

相关内容