From c3e9f5ba6fc10397f55941f36da29808a105d248 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 7 Apr 2010 17:07:42 -0700 Subject: initial --- examples/linux-tcp-listener-stats.rb | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 examples/linux-tcp-listener-stats.rb (limited to 'examples') diff --git a/examples/linux-tcp-listener-stats.rb b/examples/linux-tcp-listener-stats.rb new file mode 100755 index 0000000..338c408 --- /dev/null +++ b/examples/linux-tcp-listener-stats.rb @@ -0,0 +1,28 @@ +#!/usr/bin/ruby + +# this is used to show or watch the number of active and queued +# connections on any listener socket from the command line + +require 'raindrops' +require 'optparse' +usage = "Usage: #$0 [--loop] ADDR..." +ARGV.size > 0 or abort usage +delay = false + +# "normal" exits when driven on the command-line +trap(:INT) { exit 130 } +trap(:PIPE) { exit 0 } + +opts = OptionParser.new('', 24, ' ') do |opts| + opts.banner = usage + opts.on('-d', '--delay=delay') { |nr| delay = nr.to_i } + opts.parse! ARGV +end + +fmt = "% 19s % 10u % 10u\n" +printf fmt.tr('u','s'), *%w(address active queued) + +begin + stats = Raindrops::Linux.tcp_listener_stats(ARGV) + stats.each { |addr,stats| printf fmt, addr, stats.active, stats.queued } +end while delay && sleep(delay) -- cgit v1.2.3-24-ge0c7