免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7706 | 回复: 3

[其他] 如何利用类似于锁的机制控制多台机的同一个crontab在任何时刻有且只有一台机在执行? [复制链接]

论坛徽章:
0
发表于 2014-03-16 23:13 |显示全部楼层
本帖最后由 agetzeng 于 2014-03-16 23:26 编辑

最近在思考一个有点意思的设计:本来有一台机跑着一些脚本用来上报重要数据,可是如果这台机挂掉了,那么就会缺数据。所以我就在多台机(假设是三台)上都移植了这些脚本,这时候就遇到了问题,因为任何时候,都是有且只能有一台机的脚本在跑,不能同时跑。假设我三台机的脚本配置的 crontab 执行的时间是完全一样的,那么当三台机同时到点执行脚本的时候,我就必须用类似锁的机制来控制只允许其中一台机的那个脚本跑起来,然后另外两台机的脚本不跑。请问各位大神对于怎么实现有什么想法么(在 Linux 环境下实现)?

论坛徽章:
0
发表于 2014-03-17 07:42 |显示全部楼层
做过类似的功能,很简易的实现

选定一台机器 ssh <lock-host> touch /tmp/xxx

每台机器执行任务前加一个
ssh <lock-host> mv /tmp/xxx /tmp/xxx.lock || return 0

执行完后再执行
ssh <lock-host> mv /tmp/xxx.lock /tmp/xxx

论坛徽章:
0
发表于 2014-03-17 13:14 |显示全部楼层
如果这台负责锁的机器宕机了呢? 这样子可以实现,但是不能保证高可用。回复 2# aoegiss


   

论坛徽章:
2
IT运维版块每日发帖之星
日期:2016-07-29 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:00
发表于 2016-07-26 13:42 |显示全部楼层
终于遇到同样问题了,请问LZ解决了没?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP