linux使用flock解决crontab任务冲突

Linux的crontab最小的间隔是每分钟执行一次,但是如果在这一分钟之内,之前的命令并没有执行完成呢?这样就会产生冲突。接下来我介绍一个解决冲突的办法,那就是linux的flock文件锁.

格式:

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

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

参数是:

-s, --shared:    获得一个共享锁
-x, --exclusive: 获得一个独占锁
-u, --unlock:    移除一个锁,通常是不需要的,脚本执行完会自动丢弃锁
-n, --nonblock:  如果没有立即获得锁,直接失败而不是等待
-w, --timeout:   如果没有立即获得锁,等待指定时间
-o, --close:     在运行命令前关闭文件的描述符号。用于如果命令产生子进程时会不受锁的管控
-c, --command:   在shell中运行一个单独的命令
-h, --help       显示帮助
-V, --version:   显示版本

下面是在crontab中的使用:

* * * * * flock -xn /tmp/aaa.lock -c ‘php /home/aaa.php >> /home/aaa.log‘ . //-xn  文件锁使用独占锁,如果锁定则失败不等待。
时间: 2024-10-30 09:15:30

linux使用flock解决crontab任务冲突的相关文章

五大Linux简单命令解决系统性能问题

五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样.许多管理员在遇到性能问题的时候常常简单化处理,依靠硬件的更新换代,更大的内存和更强的CPU来解决问题.事实上,利用一些简单的命令,可以发现许多管理主机的细节问题并且能迅速而简单地解决性能问题. AD:2014WOT全球软件技术峰会北京站 课程视频发布 管理Linux主机的性能看起来经常象是在变魔术一

透彻的了解Linux系统故障并解决

透彻的了解Linux系统故障并解决 2009-12-25 10:24 佚名 NET130 字号:T | T 经常应用Windows操作系统时,我们会很多的系统故障,于是很多人开始应用Linux操作系统,不过Linux操作系统也有一些系统故障,下面就对Linux系统故障诊断进行说明. 希望你能了解这些Linux系统故障. AD:2014WOT全球软件技术峰会北京站 课程视频发布 经常应用Windows操作系统时,我们会很多的系统故障,于是很多人开始应用Linux操作系统,不过Linux操作系统也有

Linux下关于解决JavaSwing中文乱码的情况

1.下载simsun.ttc(宋体).http://download.csdn.net/detail/lazy_p/4436971 2.linux中跳转到JDK安装目录 ..../jre/lib/fonts 3.sudo mkdir fallback  然后将Windows所拷贝的字体放到fallback中 相关解决网址 http://www.linuxidc.com/Linux/2009-10/21991.htm http://www.cnblogs.com/zhangyongli2011/a

如何解决Wordpress插件冲突的问题

之前有一篇文章介绍了如何判断依附插件是否被启用的问题(例如,在作为WooCommerce扩展的插件中,就要判断当前网站的Woocommerce是否启用了),文章链接:http://suoling.net/is_woocommerce_activated/现在开始说正事儿:首先,我们要引入一个Wordpress核心文件:    /*  避免 current_user_can 不可用的问题 */    if ( !function_exists( 'wp_get_current_user' ) )

CentOS7 下linux不能上网解决方法?,centos7 eth0 没有ip,IP突然丢失

CentOS7 下linux不能上网解决方法? 在CentOS VMware下安装好linux后,发现有时不能直接联网,特分享下总结出来的经验,希望对新手有用 工具/原料 XP系统 VMware.Workstation.v7.0以上 CentOS-5.5-i386-bin-DVD.iso 其他不同版本应该差不多 方法/步骤 虚拟机安装就不说了,从安装linux后测试发现不能联网,可以先终端重启下网卡 失败如图:   找到点击选择setting   在network Adapter选中,右侧是否是

Maven 解决JAR包冲突

在JAR 冲突的情况下, 利用Eclipse方式解决JAR包冲突时比较方便简洁的,步骤如下 1. 在Eclipse 中打开pom.xml , 选择  “Dependency  Hierarchy” 2, 在Filter 输入框中,输入冲突的jar,  比如: slf4j 3. 右边会显示所有依赖此包的JAR包 4.  如果你需要排除 冲突, 可以右键单击: 选择  exclude Maven artifact... 进行以上操作后, MAVEN 的依赖关系如下(举列如下:) 排除前: <depe

sbt发布assembly解决jar包冲突问题 deduplicate: different file contents found in the following

一.问题定义 最近在用sbt打assembly包时出现问题,在package的时候,发生jar包冲突/文件冲突问题,两个相同的class来自不同的jar包在classpath内引起冲突. 具体是:我有一个self4j的jar, 还有一个hadoop-common-hdfs的jar包,其中hadoop-common-hdfs.jar内包含了self4j这个jar包,导致冲突. 此类异常一般是由于打包不规范和打包疏忽引起的. (个人认为正确的打包策略是:只打包自己核心功能,不将依赖打包在一起,但是有

算法学习 - HashTable开放地址法解决哈希冲突

开放地址法解决哈希冲突 线性开放地址法 线性开放地址法就是在hash之后,当发现在位置上已经存在了一个变量之后,放到它下一个位置,假如下一个位置也冲突,则继续向下,依次类推,直到找到没有变量的位置,放进去. 平方开放地址法 平方地址法就是在hash之后,当正确位置上存在冲突,不放到挨着的下一个位置,而是放到第2^0位置,假如继续冲突放到2^1的位置,依次2^3... 直到遇到不冲突的位置放进去. 双散列开放地址法 双散列同上,不过不是放到2^的位置,而是放到key - hash(key, tab

算法学习 - Hash Table操作,分离链接法解决哈希冲突

分离链接法 hash table是映射机制的,最大的优点就是它的操作是O(1)级别的.但是会出现哈希冲突,这就需要几种办法来解决.这里先说一种:分离链接法. 就是当插入的位置已经存在一个值之后,那么在这个值之后插入,就可以了,也叫拉链法.(但是其实会降低查找速度,变成O(n)级别) 下面是代码: // // main.cpp // HashTable_SeparateChaining // // Created by Alps on 14-8-5. // Copyright (c) 2014年