我制作了一个Ruby程序,它应该读取 Linux 日志文件的末尾,以及在执行脚本期间添加到文件末尾的任何其他信息。然后使用正则表达式匹配特定行,如下所示。
Mar 31 13:28:05 dns.ns1.local dnsmasq [82093]:query [A] ns1.localdomain 来自192.168.10.2
程序应该将整行发送给本地用户(可以手动完成),无限期地这样做,同时将相同的过程应用于添加到日志文件中的任何其他信息。这个想法是程序永远不会退出。
我可以使用 ruby name_of_program.rb / var / log / messages 运行我的程序,没有任何错误,提供日志文件的tsystemhe路径作为参数。问题在于程序不能完成任何可以手动执行的任务。
我的Ruby程序:
open(ARGV.first) do |file|
file.seek(0, IO::SEEK_END)
loop do
changes = file.read
unless changes.empty?
if changes =~ /query.*ns1.localdomain/
cmd "echo Q%DNS_QUERY_TO_WWW -> #{file}Q% | /usr/sbin/sendmail berit"
end
end
end
end
对于我所缺少的内容的任何输入都将不胜感激。
答案 0 :(得分:0)
问题似乎源于系统输出,我通过以下修复解决了这个问题。
{{1}}