【问题标题】:Bash Script Date: Day before 15th and last day of month but it has to be a week day [closed]Bash 脚本日期:15 日之前的一天和每月的最后一天,但必须是工作日 [关闭]
【发布时间】:2016-07-31 03:40:11
【问题描述】:

我需要每天使用 cron 作业运行 bash 脚本。例如,假设它将打印 Hello world 但仅在特定条件下。如果是每月的 14 日或每月的最后一天。但如果该月的第 14 天或最后一天是周六或周日,则应改为在该周六或周日之前的周五打印。

例如本月(2016 年 7 月)的最后一天是 31 日(星期日),这个脚本应该在 7 月 29 日打印 Hello world,因为该月的最后一天是星期日

【问题讨论】:

  • Bash 脚本无法进行时间旅行。如果您需要脚本在周五运行,您不能等到周日再启动它。所以你的问题对我来说毫无意义。
  • @rici 请仔细阅读问题。 OP 说他需要每天运行脚本来检查它是否应该执行。
  • @uwe:是的,这是我的第一个想法。但是您如何解释“脚本必须备份两天?”
  • 也许你的意思是如果它是工作日和每月的第 14 天或最后一天,或者如果它是星期五和第 12、13、2 天或最后 3 天,脚本应该运行月份?
  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。

标签: linux bash date scripting


【解决方案1】:

您可以在cron 中进行常规调用,并且脚本本身中超出 cron 的可能性可以退出,如果它不应该退出或其他什么。我不知道这是否是一个好习惯,但这是一个解决方案。

【讨论】:

  • 这也是我的建议。脚本本身需要确定它是否应该执行。这将需要在bash 中对日期和星期几进行一些算术运算。
【解决方案2】:

为什么不设置[ cron job ]

# m  h  dom   mon dow   command
  *  16 1-15  *   1-5   /path/to/bakupscrtipt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-14
    • 2013-09-22
    • 2020-05-12
    • 1970-01-01
    • 2018-06-06
    相关资源
    最近更新 更多