如何让Cron在其他星期日每隔一个星期日运行一次?


10

我有一个cron作业,其运行时间为0 0 * * 0/2-即每隔一个星期日。例如,它现在才运行。但是,我希望它在其他星期日(下一个星期日)运行,而不是在这个星期日运行。另一种表达方式:我认为它在一年的偶数周日运行,但我希望它在奇数周日运行。

我在“ man 5 crontab”中看不到任何可以帮助我解决的问题,因此我想我需要退回到在0 0 * * 0处运行cronjob,然后在运行的命令中执行一些操作以检查它在哪个星期日是。有人可以帮我一些合适的命令行技巧吗?

ETA:已经意识到我的0/2根本不执行我最初的想法(每个第二个星期日)。它运行在每个星期日,只要一周中的那一天可以被二整除(当然可以)。天啊 无论如何,基本要求仍然存在:在奇数周日运行命令。


如“第一个,第三个和第五个星期日”中的“奇数”?
voretaq7'2013-04-29

1
否,例如在一年的第1、3、5、7,... 49、51周。换句话说,每两周一次,即一年中奇数周的星期日。
Skud

抱歉-cron不会帮您这样做。您需要让脚本检查是否适合您。(另外,如果您从某个地方记得我-嗨!
珍妮D

Answers:


3

我不会假装自己尝试执行此特定任务,但是此堆栈溢出问题有一些答案表明了潜在的命令行技巧:https : //stackoverflow.com/questions/350047/how-to-instruct-cron-to-每隔一周执行一次工作


这些都不会使cron在奇数周内运行。他们只是彼此做。我极不推荐以极富异国情调和“创意”的方式来做。
克里斯S

投票最多的答案似乎每周运行一次,然后依靠命令行技巧来确定是否合适的一周。
nmjk

1
是的,但是它是模2,这意味着它将在偶数周上运行。可能可以堆叠多个eval块以添加一个,然后进行模2。这虽然很丑,但我想它可能会起作用。
克里斯S

1
从链接的答案看,它似乎具有潜力: date +\%W\%2> / dev / null || 无论如何...但是,为了得到奇数周,我想用“ && any”代替||
Skud

1
因此,要求澄清。您是否要确定按每年的周数还是按每月的周数计算“每个奇数周”?我敢肯定,后者是可行的,但我必须找到我过去使用的一些旧代码片段。
nmjk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.