如何将Cronjob与其运行的文件同步,完成时间超过5分钟但我每3分钟设置一次Cronjob

时间:2015-02-24 06:35:17

标签: shell unix cron

我正在使用我的代码中使用的脚本出现问题,我的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脚本打开数据库连接,并且为了处理它的睡眠时间为60秒。
  3. PostP.sh - >这是一个脚本,它创建一个DB连接,并为在第2点处理的每个文件终止它。
  4. 那么你能为我提供一个解决方案吗?如果文件没有在第2点处理,那么cronjob就不会运行到那时

1 个答案:

答案 0 :(得分:0)

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

相关问题