Freitag, 5. Oktober 2012

Ruby: Verfügbarkeit von URLs checken

Mal ebend schnell den Response-Status von einer Rutsche URLs checken? Geht einfach mit diesem kurzen Rubyscript unter Verwendung der Gems Restclient und FasterCSV. Das Script wird mit einer CSV gefüttert und erwartet in der zweiten Spalte die URL, die erste Spalte kann mit einer ID oder ähnlichem befüllt werden.

Die Rückgabe kann direkt in eine CSV gepipet werden, am Ende wird ein kurzer Bericht angefügt.

[UPDATE] Hier das ganze auch auf Github: https://github.com/petschbot/onlinechecker [/UPDATE]

#!/usr/bin/ruby -w

# Fast URL response checker
# Author: PS
# Date: 2010/10/05

require 'rubygems'
require 'rest-client'
require 'fastercsv'

# CSV File as first command line argument
# Must be look like this:
# id;url
# 01;http://www.example.com

csv_file = ARGV[0]

      
linenumber = 0
ok_counter = 0
error_counter = 0

FasterCSV.foreach(csv_file, :quote_char => '"', :col_sep =>';', :row_sep =>:auto) do |row|
  unless linenumber == 0 then
    begin
      response = RestClient.get row[1] 
      puts "OK;#{row[0]};#{row[1]}"
      ok_counter = ok_counter + 1
    rescue => error
        puts "Error;#{row[0]};#{row[1]}"
        error_counter = error_counter + 1
    end
  else
    puts "status;#{row[0]};#{row[1]}"
  end
  linenumber = linenumber + 1
end

puts "------"
puts "Report"
puts "OK: #{ok_counter}"
puts "Error: #{error_counter}"

Keine Kommentare:

Kommentar veröffentlichen