给shell脚本加锁

2017-9-16 杜世伟 shell

在内部测试服务器上,有一个shell脚本用于将csv数据表格转换成Python数据文件。在执行过程中的某一步,由于需要对一些文件进行写操作,所以如果同时有两个人运行了导表程序,则第二个人运行到此步骤时,就会失败并退出,这既拖慢了第一个人的导表速度,而且对第二人的体验也不好(运行了五分钟然后告诉我失败了?黑人问号……)。所以我就想给这个shell脚本加个锁,保证同一时刻只能有一个实例在运行,并及早给出其他用户提示信息。

土办法
最开始想到的是一个土办法:每次shell开始运行,就检测某个特定的“锁文件”是否存在,如果不存在就touch一个;如果存在,则输出错误信息,提示用户稍后重试。  


LOCKFILE=/home/xxq/lock_update_check_commit_sh.tmp

if [ -e $LOCKFILE ]
then
   echo "Another user is doing the same thing, please wait!"
   exit 1
else
   touch $LOCKFILE
   chmod 600 $LOCKFILE
fi

阅读全文>>

标签: shell trap flock

评论(0) 浏览(9001)

Powered by emlog 沪ICP备2023034538号-1