Linux shell 脚本互斥同步
2016-11-23 17:28
357 查看
在Linux shell中当两个脚本需要同时访问同一个文件时,就会出现冲突。对于这种冲突可以使用flock命令解决。
flock的加锁和解锁方法如下:
加锁:
在需要同步处理的代码上加上以上代码即可实现脚本间的互斥访问,如下:
exec {lock_fd}>filename
flock -x "$lock_fd"
<your shell script,write a file and so on...>
exec $lock_fd>&-
如果使用4.2以上的bash,文件的句柄可以交由系统选择,不用自己控制。
flock命令的具体参数可以查看man帮助。-x 表示互斥锁。
flock的加锁和解锁方法如下:
加锁:
exec 3>filename # open a file handle; this part will always succeed flock -x 3 # lock the file handle; this part will block解锁:
exec 3>&- # close the file handle注意3为文件句柄,可以自己选择一个文件句柄。
在需要同步处理的代码上加上以上代码即可实现脚本间的互斥访问,如下:
exec {lock_fd}>filename
flock -x "$lock_fd"
<your shell script,write a file and so on...>
exec $lock_fd>&-
如果使用4.2以上的bash,文件的句柄可以交由系统选择,不用自己控制。
flock命令的具体参数可以查看man帮助。-x 表示互斥锁。
相关文章推荐
- Linux shell 脚本互斥同步
- Linux Shell 脚本攻略 ---- 第九章 管理重任p
- Linux shell脚本的字符串截取
- 进程互斥与同步的区别
- Linux Shell脚本中点号和source命令
- 一对多服务器触发自动数据同步脚本
- Linux shell脚本执行方式:source、sh、bash、./执行脚本的区别
- linux shell脚本学习笔记
- Linux shell 脚本001(备份五天之前的文件)
- Linux Shell脚本入门--cut命令
- 使用BASH编写Linux Shell脚本——前言
- 自动监控主从MySQL同步的SHELL脚本
- Linux shell脚本006(移动超大文件)
- 一个简单的循环rsync是否同步完成脚本
- Linux shell脚本中判断参数用法
- linux shell 脚本攻略 下
- 多线程的互斥和同步
- Linux Shell 常用脚本
- 多线程的同步互斥
- windows 多线程 同步与互斥