【问题标题】:How do I run a script on friday, once every two weeks?如何在星期五运行脚本,每两周一次?
【发布时间】:2013-02-16 00:44:06
【问题描述】:

我可以使用 cron,但我不知道是否有办法设置正确的时间表。我还可以检查 Python 中的日期,每天通过 cron 运行脚本,但在我的 (Python) 脚本中检查正确的日期(我假设它有更强大的条件)。

我曾考虑限制在 1 日至 7 日之间的星期五运行一次,而在 15 至 21 日之间的星期五限制一次跑步。但这个选项在像 3/2013 这样有 5 个星期五的月份会出现问题。

【问题讨论】:

标签: python cron scheduled-tasks


【解决方案1】:

这是你要找的吗?

把这个放到 crontab 中:

0 7 * * 5 sh -c " if [ $(expr $(expr $(date +\%s) \/ 604800) \% 2) -eq 0 ]; then command; fi "

这将在每隔一个星期五早上 7 点运行您的命令。

注意:数字 604800 表示一周(3600sec * 24 * 7)。

【讨论】:

  • 这对我不起作用:"/tmp/crontab.XXXX779ZQ1":1: bad day-of-week
  • 这里的答案解释了为什么这不起作用:stackoverflow.com/questions/9687278/…
  • 你是对的。很抱歉之前没有检查它。我已经更正了答案,现在它至少在语法上是正确的,我认为它会起作用。
  • 我的猜测是这个解决方案在一年的最后一周有问题。有时一年中的最后一个星期五在第 51 周,有时在第 52 周。所以这可能会让您连续两周或每三周运行一次脚本
  • 哈,你一直在挑战我 ;) 我想现在解决方案可以摆脱新年的边缘情况了? (我计算的是从 unix 时代开始的周数,而不是从 1 月 1 日开始。
【解决方案2】:

为什么不在每个星期五运行 cron 作业,而是添加代码以将上次运行的日期写入文件中。检查是否已经过了两周,重写文件,然后运行其余的 cron 作业

【讨论】:

  • 在 crontab 中处理这一切会更容易(也更安全,imo)。
猜你喜欢
  • 2015-06-02
  • 2011-06-02
  • 1970-01-01
  • 2022-07-16
  • 1970-01-01
  • 2014-08-04
  • 1970-01-01
  • 2023-01-03
  • 2015-09-24
相关资源
最近更新 更多