首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有没有办法在每月5号之后的第一个星期天运行crontab作业?

有没有办法在每月5号之后的第一个星期天运行crontab作业?
EN

Stack Overflow用户
提问于 2020-04-15 03:15:07
回答 1查看 23关注 0票数 0

我想在每月5号之后的第一个星期天运行crontab作业?我如何在crontab中单独完成这项工作?

我知道要在每个星期天跑步,我需要做以下事情:

代码语言:javascript
运行
复制
0 0 * * SUN

我认为下面的内容将在5号和11号之间的所有日子以及一个月内的所有星期日运行。

代码语言:javascript
运行
复制
0 0 5-11 * Sun

但是如果星期天的日期在5号和11号之间(每月5号或之后的第一个星期天),我只想跑步。

我想我可以在我的代码中添加类似下面这样的内容,但如果可能的话,我宁愿只在crontab文件中这样做

代码语言:javascript
运行
复制
import datetime
import os
import sys
dt = datetime.datetime.today()
print(dt.day)

if 5 <= dt.day <= 11:
    os.system('python runner.py')
else:
    print("not the second Sunday of the month")
    sys.exit()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-15 03:19:51

假设您的cron与我的系统(Ubuntu 19.10)上的cron类似,您不能直接使用时间和日期字段执行此操作,但是可以将测试作为shell命令的一部分包含在crontab中。crontab(5) man page有一个示例:

代码语言:javascript
运行
复制
   # Run on every second Saturday of the month
   0 4 8-14 * *    test $(date +\%u) -eq 6 && echo "2nd Saturday"

所以对你来说这就是

代码语言:javascript
运行
复制
0 0 5-11 * *    test $(date +\%u) -eq 7 && /run/my/command
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61215443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档