关于shell脚本调度的说明

时间:2013-12-17 10:03:45

标签: bash shell

我有两个shell脚本说a.sh和b.sh在cron中安排,其中第一个a.sh计划在凌晨5点运行,第二个脚本b.sh将在早上7点运行。

有一些前提条件表明:

1) Only one can run at a time.
2) The second script b.sh should run only after the first script a.sh completes.

现在问题是第一个脚本a.sh可能在早上7点之前完成执行,或者在某些情况下可能超过早上7点,如果超过早上7点,第二个脚本也会启动,这将打破其中一个前提条件。

这里我不能在当天晚些时候开始第二个脚本作为它非常关键的脚本。

在这里,我怎样才能让两个脚本一个接一个地运行,而第一个脚本不会踩到第二个脚本。

1 个答案:

答案 0 :(得分:1)

让a.sh脚本在完成后创建一个锁定文件(最后一行)。

touch ~/a.lck

在b.sh的开头:

if [ ! -f ~/a.lck ]; then
  exit 1 #or whatever you want it to do if the lock file is not there.
fi

不要忘记在a.sh的开头或b.sh的结尾处输入锁文件。