Чтобы создать сценарий Ruby, проверяющий коды состояния URL-адресов, перечисленных в файле, вы можете использовать библиотеку Net::HTTP для выполнения HTTP-запросов.

  • Он определяет функцию check_status_code, которая принимает URL-адрес в качестве входных данных, отправляет HTTP-запрос к этому URL-адресу с помощью Net::HTTP и проверяет код состояния ответа.
  • Сценарий ожидает один аргумент командной строки, который представляет собой имя входного файла, содержащего список URL-адресов для проверки.
  • Он считывает каждую строку из входного файла, отсекает все начальные/конечные пробелы с помощью chomp и вызывает check_status_code для проверки кода состояния для каждого URL-адреса.
  • Он печатает результат для каждого URL-адреса, указывая, является ли код состояния «ОК» (200) или «Не в порядке» (любое, кроме 200), или есть ли ошибка.

Код:

require 'net/http'

def check_status_code(url)
  uri = URI(url)

  begin
    response = Net::HTTP.get_response(uri)

    if response.code.to_i == 200
      return "#{url} - Status Code: #{response.code} (OK)"
    else
      return "#{url} - Status Code: #{response.code} (Not OK)"
    end
  rescue StandardError => e
    return "#{url} - Error: #{e.message}"
  end
end

if ARGV.length != 1
  puts "Usage: ruby status_checker.rb <input_file>"
  exit(1)
end

input_file = ARGV[0]

if !File.exist?(input_file)
  puts "Input file '#{input_file}' not found."
  exit(1)
end

# Read URLs from the input file and check their status codes
File.foreach(input_file) do |line|
  url = line.chomp
  result = check_status_code(url)
  puts result
end

or

https://gitlab.com/nusantaracodes/HTTPStatus

Аргумент: ruby status_checker.rb input_urls.txt

Замените input_urls.txt именем входного файла, содержащего список URL-адресов для проверки. Скрипт прочитает URL-адреса из файла и предоставит коды состояния для каждого URL-адреса.