我有两个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点,第二个脚本也会启动,这将打破其中一个前提条件。
这里我不能在当天晚些时候开始第二个脚本作为它非常关键的脚本。
在这里,我怎样才能让两个脚本一个接一个地运行,而第一个脚本不会踩到第二个脚本。
答案 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的结尾处输入锁文件。