如何在 cron 表达式中跳过周六和周日?

69

您好,我想创建一个cron表达式,其中不包括星期六和星期日。


3
你有没有阅读过 crontab(5) 的手册页,例如 http://linux.die.net/man/5/crontab ? - Basile Starynkevitch
6
我真的不明白为什么这个问题“不符合主题”。 - carla
3
这段内容不是关于编程的正常定义,而更多地与服务器管理有关,因此它属于离题。因此,对于这个问题,https://serverfault.com/ 是正确的地方(即使它是针对工作站定时执行设置,但大多数情况下还是用于服务器)。虽然可以宽泛地说它是在编程计算机,但它并不是大多数人所定义的编程。 - J Roysdon
@MichaelPlautz JRoysdon 你们俩是在开玩笑吧?当然,cron表达式就像正则表达式一样与编程有关。如果没有对cron表达式的了解,就无法使用Quartz框架中的CronTriggers:http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html 我投票支持重新打开这个显然非常有用的问题。 - Tristan
请参考类似的“相关问题”:https://dev59.com/mGkw5IYBdhLWcg3w1d8m#9619441 - Tristan
显示剩余3条评论
3个回答

137

0 0 * * 1,2,3,4,5 <user> <command>开头。 第一个字段是分钟,第二个字段是小时。 在这种情况下,命令将在午夜运行。 星号表示:每个月的每一天和每个月。 1到5指定的是星期一到星期五。 6=星期六,0=星期日。


69
好的,我会尽力做到最好。以下是需要翻译的内容:
  1. What is your name? 你叫什么名字?
  2. How old are you? 你多大了?
  3. Where are you from? 你来自哪里?
  4. What do you do for a living? 你的职业是什么?
  5. Can you help me with something? 你能帮我一些忙吗?
- Michael Fever
7
最佳方式是,每周一至周五的 0 点整执行 <脚本名称>。 - Balamurugan Thangam
2
每周一至周五上午9点:'0 9 * * 1-5' 在https://crontab.guru上进行测试。 - Sebastian S

26

试一下这个:

# run every two hours at the top of the hour Monday through Friday
0 */2 * * mon-fri <command>

3
使用特定日期或月份的前三个字母(大小写不敏感)。不允许使用名称的范围或列表。 - scribu
5
我猜这与您使用的cron守护程序有关。在我的情况下,Slackware附带的dcron支持此功能,并且甚至是其中的一个示例。 - SiegeX
https://crontab.guru/#*/10_*_*_*_1,2,3,4,5 这很容易理解:“每周一、周二、周三、周四和周五的每个第10分钟。” - Bitfinicon

-1
简单来说,0代表星期日6代表星期六
  • */10 * * * 1-5 - 每周一至周五的每个10分钟。
  • */10 * * * 0,6 - 每周日和周六的每个10分钟。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接