2013-12-17 70 views
3

我有2个shell脚本说a.sh和b.sh计划在cron,其中第一个a.sh定于早上5点和b.sh将在早上7点运行第二个脚本运行。澄清关于shell脚本调度

有其中指出的先决条件:

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

写运行'a.sh'包装脚本,检查当前时间在有效范围内,并且在这种情况下运行'b.sh'? –

+0

所以你建议在上午5点安排一个包装脚本来运行第一个脚本,在完成第一个脚本的exec之后,如果当前时间大于7am,那么也启动第二个脚本。那是否正确? –

+1

似乎你有一个捕获22.一个必须运行在5 &&可以运行过去7. b必须运行在7,但不能运行时运行。微不足道让它们按顺序运行或在特定时间运行,但仍需要在某处放松参数。 – BroSlow

回答

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 

不要忘了RM锁文件或者在a.sh的开头或b.sh结束!