问题背景
使用自动安装框架进行业务安装,调用SHELL脚本来修改权限等操作,包括修改server.xml配置等信息,某天两个安装任务一起运行时,发现密码字段为空,单独运行命令或单个安装任务则不会出现问题。
问题原因
SHELL代码出问题段代码类似如下逻辑:
passwd=""
passwd=`encrypt xxx`
modXmlPasswd $passwd
在第一个任务跑完第二行时,第二个任务运行到了第一行,于是修改xml中密码字段时用了空字符串,就出现问题描述的情况了。
问题解决
当然是分发包之后的安装过程中一个任务一个任务运行了,后续为了省时间,也只能在第一个任务开始运行之后,第二个任务先上传安装包以节省时间。
从前没关注过shell脚本还能有并发问题,也是一次有趣的体验。
本文描述了一种在使用Shell脚本进行并发操作时遇到的问题,即当多个安装任务同时运行时,由于脚本中未考虑并发场景导致部分配置被错误地设置为空。通过分析问题原因并调整安装流程解决了该问题。
2345

被折叠的 条评论
为什么被折叠?



