Ansible:在服务器重新启动之前轮询日志文件的空闲时间

时间:2016-08-23 04:22:33

标签: ansible ansible-playbook

我希望Ansible拖尾日志文件并等待空闲时间 - 例如XX秒,其中日志空闲了一段时间。

如果日志在XX秒内没有空闲,请继续等待,直到我们有XX秒的空闲时间。

如果空闲时间过去,则Ansible将重新启动服务器。

空闲时间可以通过检查最后2个日志条目及它们之间的时差来计算。

如何使用Ansible实现这一目标?

2 个答案:

答案 0 :(得分:3)

没有必要等待两个相隔XX秒的日志条目,而不是等到最后一次登录后的XX秒,因为如果你的时间超过XX秒,则下一次写入将符合你的条件。

在此基础上,只需这样做(例如目的XX = 5)

- find: paths="/tmp" patterns="logfile" age="5s" age_stamp="mtime"
  register: modified
  until: modified.matched == 1
  retries: 20
  delay: 5

只需确保路径和模式规范仅与您的日志文件匹配。

答案 1 :(得分:1)

如果您有命令以秒为单位打印时差,则可以使用:

- shell: /opt/myscripts/log_difference.sh
  register: result
  until: result.stdout | int > 60
  retries: 5
  delay: 10

这将执行log_difference.sh,直到超过重试次数或stdout中的数字大于60.