我希望添加一个 crontab
条目以每 30 分钟、整点和整点后 30 分钟或接近的时间执行一次脚本。我有以下内容,但它似乎没有在 0 上运行。
*/30 * * * *
我需要使用什么字符串?
cron 在 OSX 上运行。
做:
0,30 * * * * your_command
crontab 不理解“intervals”,它只理解“schedule”
有效时间:0-23 -- 有效分钟:0-59
示例 #1
30 * * * * your_command
这意味着“在每小时的分钟为 30 时运行”(将在:1:30、2:30、3:30 等运行)
示例 #2
*/30 * * * * your_command
这意味着“当每小时的分钟可以被 30 整除时运行”(运行时间:1:30、2:00、2:30、3:00 等)
例子#3
0,30 * * * * your_command
这意味着“在每小时的分钟为 0 或 30 时运行”(将在:1:30、2:00、2:30、3:00 等运行)
这是完成与示例 #2 相同结果的另一种方法
例子#4
19 * * * * your_command
这意味着“在每小时的分钟为 19 时运行”(将在:1:19、2:19、3:19 等运行)
示例 #5
*/19 * * * * your_command
https://i.stack.imgur.com/09Nfp.png
注意:包括作者在内的各种用户对这篇文章进行了一些改进
尝试这个:
0,30 * * * * your command goes here
根据官方 Mac OS X crontab(5) manpage,支持 /
语法。因此,要弄清楚为什么它不适合您,您需要查看 cron 的日志。在这些日志中,您应该找到明确的失败消息。
注意:Mac OS X 似乎使用 Vixie Cron,与 Linux 和 BSD 相同。
如果您的 cron 作业仅在 Mac OS X 上运行,您可能需要使用 launchd。
从 Scheduling Timed Jobs (official Apple docs):
注意:虽然它仍然受支持,但 cron 不是推荐的解决方案。它已被弃用,取而代之的是 launchd。
您可以通过简单的网络搜索找到其他信息(例如 launchd Wikipedia page)。
您可以同时使用 ',' 或分隔 '/' 符号。但是,'/' 更好。假设“每 5 分钟”的情况。如果你使用',',你必须编写如下的cron作业:
0,5,10,15,20,25,30,35,.... * * * * your_command
这意味着在所有定义的分钟内每小时运行 your_command:0,5,10,... 但是,如果使用“/”,则可以编写以下简单而简短的作业:
*/5 * * * * your_command
这意味着在可被 5 整除的分钟内运行 your_command 或用更简单的词 '0,5,10,...' 所以,可分符号 '/' 始终是最佳选择;
0,30 * * * * root your_command
的操作,其中 root 将是我正在使用的用户。