Skip to content

Instantly share code, notes, and snippets.

@mitsuhirookuno
Last active August 25, 2019 06:09
Show Gist options
  • Save mitsuhirookuno/f8ac9dd7311702c0e6df9dbc139d5db1 to your computer and use it in GitHub Desktop.
Save mitsuhirookuno/f8ac9dd7311702c0e6df9dbc139d5db1 to your computer and use it in GitHub Desktop.
リクエストの再実行
require 'uri'
require 'pry'
require 'csv'
require 'time'
REPRODUCE_HOST = 'localhost:4567'
PROTOCOL = 'http'
CURL_COMMAND = 'curl'
def main
CSV.read(ARGV[0], headers: true).each.with_index(1) do |line, index|
puts "> #{line}"
begin
uri = URI.parse(line['url'])
reproduce_url = "#{PROTOCOL}://#{REPRODUCE_HOST}#{uri.path}?#{uri.query}"
remote_ip_address = line['clientip']
command = "#{CURL_COMMAND} --header \"X-Forwarded-For: #{remote_ip_address}\" \"#{reproduce_url}\""
puts "#{'%06d' % index} [#{Time.now}] < #{command}"
`#{command} >/dev/null 2>&1`
if $?.exitstatus != 0
STDERR.puts '< [ERROR] curlが異常終了しました'
binding.pry if $DEBUG
end
rescue URI::InvalidURIError => ex
STDERR.puts '< [ERROR] パースが出来ません。読み飛ばします'
binding.pry if $DEBUG
end
end
rescue => ex
STDERR.puts ex
STDERR.puts ex.backtrace
end
main
timestamp clientip url
2019-08-24T15:00:00.197751Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.221669Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.387268Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.413833Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.439400Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.499990Z 160.248.18.15 https://x-api.cir.io:443/click?tags_id=xta394752174726&session_id=5416271566658800111xta394752174726&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Fshachiku-newdays.com%2Fgameappli-ranking%2F&pd=2019-08-22-6-22-42&user_id=5418961566658800111&language=ja-JP
2019-08-24T15:00:00.881678Z 153.166.213.163 https://x-api.cir.io:443/click?tags_id=xta105237797961&session_id=2818561566658800888xta105237797961&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Frisemara-king.com%2Fnothing%2Fmiipazu-kouryaku%2F&pd=2019-08-22-6-22-42&user_id=8443801566658800888&language=ja-JP
2019-08-24T15:00:00.906269Z 153.166.213.163 https://x-api.cir.io:443/click?tags_id=xta105237797961&session_id=2818561566658800888xta105237797961&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Frisemara-king.com%2Fnothing%2Fmiipazu-kouryaku%2F&pd=2019-08-22-6-22-42&user_id=8443801566658800888&language=ja-JP
2019-08-24T15:00:00.929739Z 153.166.213.163 https://x-api.cir.io:443/click?tags_id=xta105237797961&session_id=2818561566658800888xta105237797961&ua=Mozilla%2F5.0%20(iPhone%3B%20CPU%20iPhone%20OS%2012_4%20like%20Mac%20OS%20X)%20AppleWebKit%2F605.1.15%20(KHTML%2C%20like%20Gecko)%20Version%2F12.1.2%20Mobile%2F15E148%20Safari%2F604.1&referrer=https%3A%2F%2Frisemara-king.com%2Fnothing%2Fmiipazu-kouryaku%2F&pd=2019-08-22-6-22-42&user_id=8443801566658800888&language=ja-JP
@mitsuhirookuno
Copy link
Author

mitsuhirookuno commented Aug 25, 2019

想定

  • csvはheader行あり
  • シングルスレッド実行
  • 実行コマンド nohup ruby reproduce_request.rb ./url_list.csv | tee reproduce_request.rb.log &
    • 時間がかかる為、バックグラウンド実行
    • url_list.csvに、再実行用のcsvファイルがダウンロード済み

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment