RubyでHTTPヘルスチェックプログラムをつくる(mechanizeとnet/smtpを使用する)

   ブックマークに追加する



RubyでHTTPアクセスが正常にできるかどうかを確認するツールを作成しました。
対象のURLにアクセスし、titleの文字列で正常にページアクセスできるかどうか確認しています。
エラー時は指定したメールアドレスにメールをとばすようになっています。

以下にソースコードを記載します。
※下線部は適宜環境にあわせてください

Windows環境でおこないました。
デバッグモードで実行するといくつか警告がでてますね。なんでだろ?
とりあえず動作はします。

【事前準備】
gemsmechanizeをインストールする

    > gem install mechanize


【ソースコード】

#!/usr/bin/ruby
require 'mechanize'
require 'net/smtp'
require 'kconv'

url = "http://localhost/"
wait_time = 15
@from_address = "from@mail_domain"
@send_address = "send@mail_domain"
agent = WWW::Mechanize.new

def send_alert( msg )
  body = [ "Subject: HTTP Access Error\n", "\n", msg ]
  Net::SMTP.start('mail_server') do |smtp|
    smtp.sendmail( body, @from_address, @send_address )
  end
  exit
end

begin
  while 1
    page = agent.get(url)
    s = page.title.tosjis
    if s =~ /match_word/
      puts "#{url}: #{s}\n" if $DEBUG
    else
      puts "#{url}: #{s}=#{match_str.tosjis}\n" if $DEBUG
      send_alert("#{url}: #{s}\n")
    end
    sleep wait_time
  end
rescue => ex
  puts "#{url}: #{ex.message}\n" if $DEBUG
  send_alert("#{url}:#{ex.message}\n")
end

【参考にしたサイトです】


トラックバック(0)

このブログ記事に対するトラックバックURL(トラックバックは承認後に公開されます)

コメントする

このブログ記事について

このページは、Humが2007年12月 6日 02:22に書いたブログ記事です。

ひとつ前のブログ記事は「Rubyで1行メソッド」です。

次のブログ記事は「Perlでクロールする(LWP::UserAgent)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

あわせて読みたいブログパーツ
フィードメーター - ウェブ-HACKS 「とりあえずやってみよう!」ブログ   
track feed
  • SEO対策 
  • _ 
  • _ 
  •  
  •  

このブログはクリエイティブ・コモンズでライセンスされています。