Вероятно, самым простым способом было бы открыть сокет TCP:
require 'timeout'
require 'socket'
def ping(host)
begin
Timeout.timeout(5) do
s = TCPSocket.new(host, 'echo')
s.close
return true
end
rescue Errno::ECONNREFUSED
return true
rescue Timeout::Error, Errno::ENETUNREACH, Errno::EHOSTUNREACH
return false
end
end
ping('109.104.109.237')
При этом используется пинг TCP, а не ICMP, поэтому необходимо настроить брандмауэр соответствующим образом.
Запуск этогокаждую минуту можно достичь, используя что-то вроде:
loop do
# do your ping tests
sleep 60
end
и постоянно запуская этот процесс.Вы можете посмотреть на что-то вроде Daemons (http://daemons.rubyforge.org/), если вы хотите простой способ создать фон).