Schedule Cron跳过每个月的第一个星期六

weixin_38098470 2019-09-12 03:59:37

我需要一个cron跳过每个月的第一个星期六。我知道我们可以使用以下命令在特定日期运行,但是有没有办法在每个月的特定日期跳过? //每个月 0 2 * * 1 [ date '+\%m' == date '+\%m' -d "1 week ago" ] || /path/to/command






...全文
291 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38099114 2019-09-12
  • 打赏
  • 举报
回复

由于似乎在cron别无选择。 我正在用脚本来满足上述需求。 **if [ $(date +%d) -le 7 ] && [ $(date +%u) -eq 1 ] ;** [ $(date +%d) -le 7 ] - 如果检查的日子落在第7天一个月的 [ $(date +%u) -eq 6 ] - 检查日期等于到周六 感谢。
weixin_38132289 2019-09-12
  • 打赏
  • 举报
回复

对第一个星期一运行是您的命令二进制文件或只是脚本? 怎么样的想法加在一开始类似的东西: [ $(date | awk '{print $1}') == "Sat" ] && exit 1 || { \ # your code here ... }
weixin_38137880 2019-09-12
  • 打赏
  • 举报
回复

在cron下工作(不要忘记躲避%): 0 2 * * * [[ `date '+\%u'` -ne '6' && `date '+\%d'` -lt '8' ]] || [[ `date '+\%d'` -gt '7' ]] && /path/to/command 的逻辑是: 如果当天不是周六和每月的天是1-7,执行命令 如果上面不正确,检查月份的日比7大,如果是执行 另一种方式是反转的逻辑: 0 2 * * * [[ ! (`date '+\%u'` -eq '6' && `date '+\%d'` -lt '8') ]] && /path/to/command 的逻辑是: 如果天不是第一个星期六,执行命令 man 5 crontab “第六”f ield(该行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行或 为“%”字符,将由/ bin/sh或由cronfile的SHELL变量中指定的shell执行。除非以反斜杠(\)转义,否则命令中的“%”字符将被更改为换行符,并且第一个%后的所有数据将作为标准输入发送到该命令。

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧