用于检查系统函数输出中的字符串更改的循环(监视DNS更新)

问题描述 投票:0回答:1

我正在切换DNS服务器,我想编写一个每10秒运行一次的短ruby脚本,并在我的网站解析为不同的IP后立即触发本地Mac OS X系统通知。

使用terminal-notifier发送系统通知就像这样容易

terminal-notifier -message "DNS Changed"

我想尽快触发它

ping -i 10 mywebsite.com

...更改或只是不再包含已定义的IP字符串。

> 64 bytes from 12.34.56.789: icmp_seq=33 ttl=41 time=241.564 ms

在这种情况下“12.34.56.789”。

  • 如何检测ping -i 10 mywebsite.com的输出字符串的更改,并在检测到更改后调用通知功能?

我认为这可能是一个很好的做法,等待DNS更新。

ruby monitoring
1个回答
1
投票

试试这个:

IP = "12.34.56.789"
p = IO.popen("ping -i 10 mywebsite.com")
p.each_line do |l|
  if(! l =~ /from #{IP}/) #The IP has changed
    system("terminal-notifier -message \"DNS Changed\"")
  end
end
© www.soinside.com 2019 - 2024. All rights reserved.