Itz*_*zie 4 bash shell-script lock flock
我想通过文件锁同步两个 Bash 脚本。这该怎么做?Zsh 有zsystem flock
调用,但是 Bash 也可以使用更“shellish”的方法吗?
除了锁定文件本身,您还可以创建一个用作锁的文件(锁文件)。有很多实用程序可以用于此,例如procmail
has lockfile
,而在 Debian 中,该liblockfile-bin
软件包具有dotlockfile
. procmail 应该足够通用,可以在大多数系统上使用。
但基本上它归结为:
tempfile=$(mktemp ./lock.XXXX)
lockfile=./lockfile
if ln $tempfile $lockfile ; then
echo got it
# do something
rm $lockfile # after you're done
else
echo did not succeed
fi
rm $tempfile
Run Code Online (Sandbox Code Playgroud)
ln
如果目标已经存在,则不会破坏目标,与类似的东西不同echo > file
,相反,您会收到一个可以检查的错误。
注意:如果您想通过NFS进行锁定,请使用一些为此目的制作的工具。通过 NFS 并发访问文件的语义是……至少可以说很有趣。
归档时间: |
|
查看次数: |
15309 次 |
最近记录: |