私は現在、Ruby on Railsで作成されたDashboardアプリケーションを作成しています。Railsを使用してサーバにpingしてステータスを表示
私はPing用にサーバーモデルとコントローラを追加しました。
私が望むのは、指定されたサーバーのIPアドレスでping
コマンドを実行することです。
私はこれについてどうやって結果(ステータスとM/S)をデータベースに記録しますか?
毎分コマンドを実行する方法も知りたいと思います。
私は現在、Ruby on Railsで作成されたDashboardアプリケーションを作成しています。Railsを使用してサーバにpingしてステータスを表示
私はPing用にサーバーモデルとコントローラを追加しました。
私が望むのは、指定されたサーバーのIPアドレスでping
コマンドを実行することです。
私はこれについてどうやって結果(ステータスとM/S)をデータベースに記録しますか?
毎分コマンドを実行する方法も知りたいと思います。
おそらく最も簡単な方法は、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/)のようなものを見ることができます。
編集者があなたの回答に変更を提案しました。編集履歴を見て、気分が合うように行動してください。 –
これを実行したレーキタスクを作成して毎分実行するようにしたいと思うのですが、もっと細かいことは分かりません。 –