以下为大概思路,可以用各种语言实现。
在 crontab 中每 4 小时检查一次 /var/lib/puppet/state/puppetdlock 这个文件是否存在 [1],如果存在,获得其 mtime,如果 mtime 和当前时间已经差了一个小时以上(没有理由单次运行会超过 1 个小时),那就:
service puppet stop
puppet agent --enable
puppet agent --test
当然,需要加入保证 Service['puppet'] 一直运行,这样当 --test 的时候,除了会完成同步之外,也就可以重新启动 puppet agent daemon。
[1]
http://projects.puppetlabs.com/issues/3757
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/85596
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.