最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
linux shell命令之文件锁定功能
时间:2012-01-02 编辑:简简单单 来源:一聚教程网
在工业应用中,有些来自于工业设备的文件将会被放到指定的目录下,由于这些文件需要再被重新格式化后才能被更高层的软件进行处理。而此时负责处理的脚本程序极有可能是多个实例同时运行,因此这些实例之间就需要一定的同步,以避免多个实例同时操作一个文件而造成的数据不匹配等问题的发生。文件锁定命令可以帮助我们实现这一同步逻辑。
代码如下 | 复制代码 |
/> cat > test26.sh #!/bin/sh #1. 这里需要先确认flock命令是否存在。 if [ -z $(which flock) ]; then echo "flock doesn't exist." exit 1 fi |
#2. flock中的-e选项表示对该文件加排它锁,-w选项表示如果此时文件正在被加锁,当前的flock命令将等待20秒,如果能锁住该文件,就继续执行,否则退出该命令。
#3. 这里锁定的文件是/var/lock/lockfile1,-c选项表示,如果成功锁定,则指定其后用双引号括起的命令,如果是多个命令,可以用分号分隔。
#4. 可以在两个终端同时启动该脚本,然后观察脚本的输出,以及lockfile1文件的内容。
代码如下 | 复制代码 |
flock -e -w 20 /var/lock/lockfile1 -c "sleep 10;echo `date` | cat >> /var/lock/lockfile1" if [ $? -ne 0 ]; then echo "Fail." exit 1 else echo "Success." exit 0 fi CTRL+D |
-
上一个: linux中通过FTP下载指定的文件方法
相关文章
- 如何在Linux下增大可打开文件描述符的数目 05-12
- Linux下如何打开文件描述符的最大数? 05-09
- Linux下查看16进制文件方法 04-05
- 一波Linux下常用的文件相关命令小整理 12-21
- Linux系统上解压或挂载img文件的方法 12-21
- Linux系统中sed命令在文件某行前后添加内容的用法 12-20