我查看了 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 分钟,即星期日。)