脚本的单实例运行

公众号:"打屎产品经理"  qq:1013896790  欢迎交流

脚本单实例运行一般2种做法:

1.脚本内部加判断逻辑:将某个文件作为标志位,文件不存在则执行,文件存在就不执行。

优点:简单,直观,很容易理解

缺点:标志文件因为异常没有被删除的情况下,则机制出现问题;脚本内部增加判断逻辑,侵入了脚本本身要实现的功能

 

2.【最优】利用flock:在某个文件上上互斥锁,上锁失败则证明目前有实例在运行,上锁成功则说明自己是唯一实例

flock -xn /tmp/test.lock -c "do_cmd.sh"

优点:不会出现误判,脚本专注于本身逻辑即可,不需要冗余判断,实现优雅

缺点:理解上比1要稍微难一点

 

你可能感兴趣的:(运维技能树)