Ruby net/http で Web サービスが動いているか確認する
Web サービスが停止していないかどうか確認するスクリプト。 open-uri を使うとタイムアウトが設定できないので、net/http で行う。
#!/usr/bin/env ruby require 'net/http' PROXY_ADDRESS = nil # プロキシサーバのアドレス PROXY_PORT = nil # プロキシサーバのポート def check_site_alive(domain, port = 80) begin Net::HTTP.start(domain, port, PROXY_ADDRESS, PROXY_PORT) do |http| http.open_timeout = 20 http.read_timeout = 40 # ↓は Web サービスにあわせて書き換える response = http.post(path, data) return response.code == '200' end rescue Exception => e puts e return false end end puts check_site_alive("webservice.domain")