cron - 如何设置 cron 每 40 分钟/25 分钟运行一次我的脚本?

标签 cron

我希望脚本从第 40 分钟开始每 40 分钟运行一次。
这意味着:

00:40, 01:20, 02:00, 02:40, 03:20...

所以我在 cron 中做了这个条目:

*/40 * * * * /path/to/script/foo.sh

不幸的是,该脚本每 40 分钟运行一次:

00:40, 01:40, 02:40...

我打算每 25 分钟运行一次的脚本也是如此。

我在这里遗漏了什么吗?

<小时/>

答案
好吧,以防万一您碰巧遇到同样的问题
我是这样解决的:

# 40mins-interval
40 0 * * * /path/foo.sh         (0)
0,40 2-22/2 * * * /path/foo.sh  (2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22)
20 1-23/2 * * * /path/foo.sh    (1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23)  


# 25mins-interval
25,50 0 * * * /path/foo.sh              (0)
0,25,50 5-20/5 * * * /path/foo.sh       (5, 10, 15, 20)
15,40 1-21/5 * * * /path/foo.sh         (1, 6, 11, 16, 21)
5,30,55 2-22/5 * * * /path/foo.sh       (2, 7, 12, 17, 22)
20,45 3-23/5 * * * /path/foo.sh         (3, 8, 13, 18, 23)
10,35 4-19/5 * * * /path/foo.sh         (4, 9, 14, 19)

注释:
1. 此时间表中仍会存在冲突(即:查看两个时间间隔均在第 0 分钟和第 10 分钟运行的时间表)。
2. 脚本不会按照今天上次运行到第二天的精确间隔运行(即:25 分钟间隔今天@23:45 结束,第二天@00:25 开始)。

最佳答案

它总是只分割当前小时。

40/40 = 1,因此它每 40 分钟运行一次。

*/5 会执行 5、10、15...

您应该选择更大的间隔。

对于 25 分钟的间隔,执行 */30 次;对于 40 分钟的间隔,每 60 分钟执行一次 */30。

否则为您的脚本设置两个 crontab:

0,40 */2 * * * /path/to/script/foo.sh
20 1,3,5,7,9,11,13,15,17,19,21,23 * * * /path/to/script/foo.sh

关于cron - 如何设置 cron 每 40 分钟/25 分钟运行一次我的脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181949/

相关文章:

linux - 如何在 Linux 上找到符合模式的行并将其删除?

linux - 搜索并终止进程,并在 bash 脚本上启动新进程

python - Scrapy部署算法

php - 检查您的 PHP 是由 Cron 作业还是 HTTP 请求运行的最正确方法是什么?

linux - Shell 脚本不从 cron 作业执行

php - 通过 CRON 加载 PHP 页面

azure - WebJob Crontab 计划在整点运行,此后每 15 分钟运行一次

php - 自注册以来根据时间自动删除 Wordpress 用户?

linux - 日期格式在 shell 脚本中显示异常

mysql - Cron 作业制作日期数据库条目