flock用法详解 linux_linux使用flock文件锁

使用linux flock 文件锁实现任务锁定,解决冲突

格式:

flock [-sxun][-w #] fd#

flock [-sxon][-w #] file [-c] command

flock --help

flock (util-linux-ng 2.17.2)

Usage: flock [-sxun][-w #] fd#

flock [-sxon][-w #] file [-c] command...

flock [-sxon][-w #] directory [-c] command...

-s --shared Get a shared lock

-x --exclusive Get an exclusive lock

-u --unlock Remove a lock

-n --nonblock Fail rather than wait

-w --timeout Wait for a limited amount of time

-o --close Close file descriptor before running command

-c --command Run a single command string through the shell

-h --help Display this text

-V --version Display version

-s, --shared: 获得一个共享锁

-x, --exclusive: 获得一个独占锁

-u, --unlock: 移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁

-n, --nonblock: 如果没有立即获得锁,直接失败而不是等待

-w, --timeout: 如果没有立即获得锁,等待指定时间

-o, --close: 在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控

-c, --command: 在shell中运行一个单独的命令

-h, --help 显示帮助

-V, --version: 显示版本

example:  crontab运用flock防止重复执行

touch /tmp/my.lock  # 创建一个锁文件

*/30  * * * * loki flock -xn /tmp/my.lock -c 'sh 你的脚本文件.sh'   # -n 为非阻塞模式,会等一直等待程序执行完毕后再执行

解决问题:

防止某个脚本没有执行完毕的同时又另外的脚本再次启动

参考资料:

https://blog.csdn.net/fdipzone/article/details/38284009/

https://www.cnblogs.com/wangxusummer/p/4933492.html

linux使用flock文件锁解决crontab冲突问题

* * * * * flock -xn /dev/shm/redis.lock -c "/usr/local/bin/redis-server" 可以用flock命令,配合使用rs ...

flock文件锁的学习和应用

flock文件锁 学习与应用  2016-9-20 作用: 可以使用flock文件锁,避免指定命令的同时执行.(实现任务锁定,解决冲突) 用法: # flock -xn /opt/lock_file ...

使用linux flock文件锁实现任务锁定避免计划任务程序冲突

格式:flock [-sxun][-w #] fd#flock [-sxon][-w #] file [-c] command选项-s, --shared: 获得一个共享锁 -x, --exclusi ...

php flock 文件锁

于php中文件锁函数flock函数用法简介,希望通过本文的介绍大家对于Linux方面能够更加的了解 flock (PHP 4, PHP 5) flock — 轻便的咨询文件锁定 说明 bool flo ...

Linux编程之文件锁

1. 使用 fcntl() 给记录加锁 使用 fcntl() 能够在一个文件的任意部分上放置一把锁,这个文件部分既可以是一个字节,也可以是整个文件.这种形式的文件加锁通常被称为记录加锁,但这种称谓是不 ...

[Linux]fcntl函数文件锁概述

概述 fcntl函数文件锁有几个比较容易忽视的地方: 1.文件锁是真的进程之间而言的,调用进程绝对不会被自己创建的锁锁住,因为F_SETLK和F_SETLKW命令总是替换调用进程现有的锁(若已存在), ...

flock文件锁

linux中的定时任务crontab会定时执行一些脚本,但是脚本的时间往往无法控制,当脚本的执行时间过长,可能会导致上一次任务的脚本还没执行完,下一次任务的脚本又开始执行的问题.这种情况下会出现一些并 ...

linux文件读写 文件锁、select、poll【转】

本文转载自:http://blog.csdn.net/fansongy/article/details/6853395 一.文件锁 文件锁用于多个用户共同使用或操作同一个文件.有读锁的时候可以再加读锁 ...

unix/linux 进程间文件锁

转自 http://www.cnblogs.com/hjslovewcl/archive/2011/03/14/2314333.html 有三种不同的文件锁,这三种都是“咨询性”的,也就是说它们依靠程 ...

随机推荐

XAMPP端口占用启动不了

skype默认会占用80和443端口 如果在apache之前启动skype,apache就会启动不了了!! 解决办法很简单: 1. 先启动apache再启动skype,这样skype就会换其他的端口监 ...

iOS开发系列通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开

--系统应用与系统服务 iOS开发过程中有时候难免会使用iOS内置的一些应用软件和服务,例如QQ通讯录.微信电话本会使用iOS的通讯录,一些第三方软件会在应用内发送短信等.今天将和大家一起学习如何使用 ...

[ html canvas 透明度 globalApha ] canvas绘图属性 透明度 globalApha 属性演示

Insert you title

提高jQuery执行效率需要注意几点

1. 使用最新版本的jQuery jQuery的版本更新很快,你应该总是使用最新的版本.因为新版本会改进性能,还有很多新功能. 下面就来看看,不同版本的jQuery性能差异有多大.这里是三条最常见的j ...

shell脚本中$参数的介绍

$$Shell本身的PID(ProcessID)$!Shell最后运行的后台Process的PID$?最后运行的命令的结束代码(返回值)$-使用Set命令设定的Flag一览$*所有参数列表.如&quo ...

《About Face 3:交互设计精髓》读书笔记(一)

第一章 目标导向设计 当今数字产品的创造过程 市场营销人员对于产品设计过程的贡献,通常局限于需求列表这些需求同用户的实际需要与期望无关,主要在于追赶竞争对手,按照任务清单管理IT资源,以及基于市场调查 ...

ajax发送列表(traditional, serialize )

$(function () { $('#add_submit_ajax').click(function () { $.ajax({ url:'/addapp/', data:$('#add_app' ...

TCP/IP四层模型讲解笔记

本文转载自:http://www.vuln.cn/2041 OSI七层模型   表示层:用来解码不同的格式为机器语言,以及其他功能. 会话层:判断是否需要网络传输. 传输层:识别端口来指定服务器,如指 ...

DGUT_FLY退役贴 && FunCfans毕业总结-竞赛篇

严格来说我们飞跃队是去年ECFinal之后就退役的,只是这几个月有一堆事情在那,考研的考研,求职的求职,都把博客晾一边了.现在,总算能写点东西了. 我与ACM-ICPC的结缘,是从大一开学1个多月后开 ...

C#中使用SqlBulkCopy的批量插入和OracleBulkCopy的批量插入

1.首先我们做一下准备工作,在sql server和oracle分别建立一个Student表 oracle中 --创建Student表 -- create table Student( stuId n ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值