我希望Ansible拖尾日志文件并等待空闲时间 - 例如XX秒,其中日志空闲了一段时间。
如果日志在XX秒内没有空闲,请继续等待,直到我们有XX秒的空闲时间。
如果空闲时间过去,则Ansible将重新启动服务器。
空闲时间可以通过检查最后2个日志条目及它们之间的时差来计算。
如何使用Ansible实现这一目标?
答案 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.