in reply to efficiency & style
(These numbers are for a 2.0 series Linux kernel.)#! /usr/bin/perl -w use strict; @tcp_status = `cat /proc/net/tcp`; unless (" st " eq substr($tcp_status[0], 33, 4) and " rem_address " eq substr($tcp_status[0],19, 15)) { die "/proc/net/tcp has an unexpected format"; } my %service = qw( 0050 www 0016 ssh 1A0B irc 0015 ftp ); my %count = map {($_, 0)} values %service; foreach my $line (@tcp_status) { if ("01" eq substr($line, 34, 2)) { my $serv_code = substr($line, 29, 4); if (exists $service{$serv_code}) { ++$count{$service{$serv_code}}; } } } # Finish as Tye did
|
|---|