crontab定时任务第一个周期未完成下一个周期执行就来了
一、现象
有一个定时任务,每分钟执行一次,前一分钟还没有执行完成,下一个分钟就来了,怎么解决。
二、模拟
#!/bin/bash echo "开始 `date` " >> /lile/shell/ll.txt sleep 70 echo "结束 `date` " >> /lile/shell/ll.txt
*/1 * * * * /bin/sh /lile/shell/test_cron.sh
输出结果:不是一个执行完,再执行下一个的结果
三、解决办法:
使用文件锁flock,使用文件锁的文件可以是任意文件
*/1 * * * * flock -xn /lile/shell/test_cron.sock -c '/bin/sh /lile/shell/test_cron.sh'
输出结果:
这样的话,当前一个任务没有执行完,后一个任务就来了的话,是不会执行的,会直到这个任务执行完成后,然后一个周期的时候再执行
四、flock常用参数(man flock)
-s:获取一个共享锁
-x :获得一个独占锁
-u:解除锁
-n:如果获取锁失败立即返回而不是等待
-w:如果获取锁失败等待的时间
-c:在shell中允许一个命令
作者:李先生
-------------------------------------------
个性签名:在平凡中坚持前行,总有一天会遇见不一样的自己!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!
微信公众号 微信打赏 支付宝打赏
posted on 2018-02-26 23:01 Captain_Li 阅读(5563) 评论(0) 编辑 收藏 举报