CRON 与 mday 和 wday 之间的 AND 关系

标签 cron

我看过this问题表明 CRON 计划的 wdaymday 字段之间的关系是 OR 关系。比方说,我想为每个星期五(13 号)安排一些事情。

CRON 不是预期的结果

0 0 13 * 5

会给我每个月的所有星期五,以及每个月的每个 13 日。

有什么方法可以避免这种行为并指定 AND 关系吗? (似乎提到使用 AND 关系的旧版本,但我更愿意使用能够同时执行这两种操作的单一工具)

最佳答案

我想,您不必指定 wday (Friday=5),而只需指定 13 日为星期五的月份;因此,对于 2019 年:

0 0 13 9,12 * : do stuff, but avoid black cats

或者,永远更优雅,创建一个小脚本:

$> cat /home/me/bin/test_friday_13
#!/bin/bash
if [ "$(date +'%A %d')" != "Friday 13" ]
then
    exit 1
else
    : do stuff, but avoid black cats
    exit 0
fi

并制作 crontab 条目:

0 0 13 * * /home/me/bin/test_friday_13

脚本方法还有一个额外的好处,就是您可以从命令行运行它。 (注意:不要忘记更改脚本中的工作日名称以反射(reflect)您的环境。)

关于CRON 与 mday 和 wday 之间的 AND 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56653256/

相关文章:

如果未运行,则 Cron 检查调用 URL

linux - 如何将脚本的输出保存到日志中

kubernetes - 安排 cron 工作永远不会发生?

node.js - 递归模式下的nodejs http请求

java - Spring Boot 中是否有一个全局标志来禁用所有计划作业?

php - 如何在 Windows 上设置 cron 作业?

linux - 通过 cron 以 root 身份记录旋转 "Permission Denied"

azure - 每天凌晨 1 点运行 azure 函数的 Cron 表达式

java - 如果其中一个调度程序需要更多时间来运行,Spring Boot 应用程序调度程序将无法工作

cron - 如何从 Cron 作业访问 Docker 集环境变量