我正在使用sensu和check-tail.rb插件来提醒我的应用日志中是否有任何错误。问题是,如果检查发现3条或更多错误消息,我希望检查成功。
我想出的解决方案是使用正则表达式:
\^.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":503,.*$\im
但由于匹配函数似乎不起作用:不是将变量作为ruby正则表达式传递,而是将其作为字符串传递(可以看到here)。
答案 0 :(得分:2)
您需要将模式作为字符串文字传递,而不是作为Regexp对象传递。
因此,您需要删除正则表达式分隔符并将修饰符更改为其内联选项变体,即使用(?im)
添加模式。
(?im)\A.*"status":503,.*$.*^.*"status":503,.*$.*^.*"status":503,.*\z
请注意,为了匹配Ruby中字符串的开头,您需要使用\A
并匹配字符串的结尾,您需要使用\z
个锚点。