我有4个shell脚本生成一个文件(假设param.txt),这是通过使用其他工具(Informatica的),并作为刀具与加工完成的,它会删除param.txt。同步4个shell脚本运行陆续在UNIX
这里的意图是所有四个剧本,可以在不同的时间被调用可以说,凌晨00:10,上午12时13分,上午12时16分,上午12时17分。第一个脚本在上午12点10分运行,并创建param.txt并触发使用param.txt的informatica流程。 Informatica过程需要5-10分钟才能完成并删除param.txt。第二个脚本在上午12:13调用并等待param.txt不可用,并且由于informatica进程将其删除,脚本2将创建新的param.txt并再次触发相同的informatica。另外两个脚本也是如此。
我使用直到和睡眠命令在所有4个shell脚本来检查param.txt的不可象下面这样:
until [ ! -f "$paramfile" ]
do
Sleep 10
done
<create param.txt file>
问题在这里,有时当所有4个脚本开始,第一个成功和生成param.txt(因为之前没有param.txt)和其他等待,但是当informatica进程完成并删除param.txt时,其余3个脚本或其中2个同时检查不可用,并且其中一个创建它,但都成功。我检查了四种脚本之间睡眠间隔的不同组合,但几乎每次都发生这种情况。
看看在每个脚本开始时在'/ var/tmp'中创建一个临时txt文件,并在它结束时将其删除 – Vinny
是否有任何东西阻止informatica进程同时运行,除了它们看起来都是硬编码寻找'params.txt'? – chepner
不,每个脚本运行后param.txt都会更改,并且informatica工作流程将在每次运行中提取已更改的param.txtx。 – singhsaurabh