【问题标题】:How to Sync Cronjob with the files its running which takes more than 5 mins to complete but i have Cronjob set for every 3 mins如何将 Cronjob 与其运行的文件同步,这需要 5 分钟以上才能完成,但我每 3 分钟设置一次 Cronjob
【发布时间】:2015-02-24 06:35:17
【问题描述】:

我在代码中使用的脚本遇到问题,我的 cronjob 每 5 分钟运行一次,但它运行一段时间的脚本需要更多时间,我希望我的 cronjob 等待这些文件完成它处理然后在最早的时间间隔执行是否可能?

请看下面的例子。请给我一个解决方案。 TIA。

我正在运行一个 cronjob,例如:

*/5 * * * * /home/Sti/New_Int/fetch_My_Data.sh

这项工作正在调用下面的脚本,并且很少有关于每个脚本在做什么的细节

  1. fetch_Some_Data.sh --> 这个脚本只是将几个文件从一个位置移动到另一个位置,以便处理唯一需要的文件。
  2. tran.sh --> 此脚本打开一个 for 循环,对于每个文件,它将通过调用 PostP.sh 脚本打开一个 DB 连接,并且它的休眠时间为 60 秒。
  3. PostP.sh --> 这是一个脚本,它为第 2 点中正在处理的每个文件创建一个数据库连接并终止它。

那么您能否提供一个解决方案,以便如果文件未在第 2 点中处理,则 cronjob 将不会运行到那时

【问题讨论】:

    标签: shell unix cron


    【解决方案1】:

    在这种情况下,我通常使用临时文件来指示正在运行的实例,并且在该文件存在之前,所有其他实例都只需退出或出错。
    在执行任何其他操作之前将此逻辑添加到您的 shell 脚本中:
    如果存在文件
    然后
    退出
    如果结束
    其他
    触摸空文件
    结束其他

    【讨论】:

    • 其他选项是在父代码中创建一个后台进程而不是 cron,然后退出。您也可以在调用和退出之前添加等待 5 分钟。
    猜你喜欢
    • 1970-01-01
    • 2012-08-26
    • 1970-01-01
    • 2021-04-05
    • 2023-03-16
    • 2014-11-02
    • 1970-01-01
    • 2018-05-28
    • 2017-01-19
    相关资源
    最近更新 更多