Visit Our UNIX and Linux User Community


Count no of netstat states


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Count no of netstat states
# 1  
Old 07-30-2014
Count no of netstat states

Code:
netstat | awk  '/server/ {for(i=1;i<2;i++) {getline;print}' 
 
Output:
ESTABLISHED
ESTABLISHED
ESTABLISHED
ESTABLISHED
ESTABLISHED
TIME_WAIT
TIME_WAIT

From the above command I'm getting all the states. I want to count the states and write to a file, like
"Count of ESTABLISHED is: 5"
"Count of TIME_WAIT is : 2"

How to count in awk, other than passing the output to grep and using -c option.
# 2  
Old 07-30-2014
Looks like you managed to print just the state of each server.
Now, try to push each state as the key in an associative array and keep incrementing the value each time you find the same state in the array keys.
This User Gave Thanks to balajesuri For This Post:
# 3  
Old 07-30-2014
Here is my own little concoction I use for such things.
Produces output like:
Code:
=====================================
host                    total   FIN_WAIT2 ESTABLISHED
192.168.1.115   |           1           0           1
192.168.1.32    |           1           0           1
86.8.240.6      |           7           6           1
total           |           9           6           3


Code:
#!/usr//bin/perl 

use strict;
my ($Proto, $Recv, $Send, $Local, $Foreign, $State);
my ($local, $foreign, $f_port, $l_port);
my $db = {};
my @STATES;
my $stats = {};
our $verbose = 1;


open NETSTAT,  "netstat -nt |" or die "netstat:$!\n"; 

my $headers = my $h = 2;
<NETSTAT> while ($h--);

LOOP:
while (<NETSTAT>) {

    ($Proto, $Recv, $Send, $Local, $Foreign, $State) = split;

    foreach my $grep (@ARGV) {
        next LOOP unless /$grep/;
    }

    print if $verbose ;

    ($foreign, $f_port) = split ':', $Foreign;
    ($local, $l_port) = split ':', $Local;

    $stats->{$State}++;

    $db->{$foreign}->{connections}++ ;
    $db->{$foreign}->{states}->{$State}++;
    $db->{total}->{connections}++ ;
    $db->{total}->{states}->{$State}++;
}

@STATES = (keys %$stats);
printf "=====================================\n";
printf "%-16s %12s", "host", "total";
map { printf "%12s", $_ } @STATES;
print "\n";

foreach my $h (sort keys %$db) {
    printf "%-16s|", $h;
    printf "%12d",  $db->{$h}->{connections};
    foreach my $s (@STATES) {
        my $state = $db->{$h}->{states}->{$s} +  0; 
        printf "%12d",  $state;
    }
    print "\n";

}

This User Gave Thanks to bigearsbilly For This Post:
# 4  
Old 07-30-2014
Code:
netstat -antu | awk '/LISTEN|ESTABLISHED|TIME_WAIT/{a[$6]++}; END { for(b in a) print "Count of "b" is: "a[b]}'

# 5  
Old 07-31-2014
Hi in2nix4life,

Thanks for your reply,

-antu option is not working in ksh.

I used
Code:
netstat -a

which gave me the below output.

Code:
tcp 0 0 server1.00000 server2.00000 ESTABLISHED

from that I used ur suggestion which produced the below o/p:
Code:
netstat -a | grep server1 |  awk '/LISTEN|ESTABLISHED|TIME_WAIT/{a[$6]++}; END { for(b in a) print "Count of "b" is: "a[b]}' 
 
Count of LISTEN is:2
Count of ESTABLISHED is: 18
Count of TIME_WAIT is: 5

Thanks
# 6  
Old 07-31-2014
You can merge the grep behavior into the awk code and get rid of the invocation of grep:
Code:
netstat -a | awk '/server/ && /LISTEN|ESTABLISHED|TIME_WAIT/{a[$6]++}; END { for(b in a) print "Count of "b" is: "a[b]}'

# 7  
Old 07-31-2014
Thanks Don Cragun.

Previous Thread | Next Thread
Test Your Knowledge in Computers #418
Difficulty: Easy
'JavaScript' is a trademark of Oracle Corporation in the United States.
True or False?

8 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ps command showing different states for same process

I am using HP-UX,KSH $ jobs -l + 19377 Running nohup ksh cat_Duplicate_Records_Removal.ksh </dev/null >/dev/null 2>&1 & $ ps -p 19377 -fl F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME COMD 401 S catmgr 19377 19491 ... (1 Reply)
Discussion started by: TomG
1 Replies

2. Hardware

Hyperthreaded virtual cores, different C-States?

turbostat reports C-states of all CPU cores, and includes entries for each hyper-threaded core as well. Often enough the two logical cores on a single physical core will list different C state percentages. Does that make any sense? Is this reporting the c-states of the few duplicated parts... (8 Replies)
Discussion started by: agentrnge
8 Replies

3. UNIX and Linux Applications

Where can I find UNIX training course in the United States?

Hi guys, Can you help me please to find an appropriate course of UNIX in the United States. Also, can you provide me some information about the schools or institutes that offer it in the U.S. Thanks, (0 Replies)
Discussion started by: Malik Dera
0 Replies

4. UNIX for Advanced & Expert Users

Unix process states

I am trying to write my own Unix compliant (SUSv4) OS - Just a hobby OS, nothing serious. While going through the standard, I couldn't find any explicit information on process states. What I could find was (excluding the real-time considerations)- From this it can be inferred that the... (2 Replies)
Discussion started by: tinkerbeast
2 Replies

5. UNIX for Advanced & Expert Users

cpufreq directory not present. How to change governor for P states in such a case

One node in my cluster is using ondemand governor which is specified in the directory /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor .. Scaling_governor allows us to choose the governor of our choice . But this sub-directory is absent in the other node of the cluster . How do I change... (0 Replies)
Discussion started by: vishwamitra
0 Replies

6. Solaris

meaning of states in sun clusters

Hi Everybody, As I am new to Sun Clusters, Please help me what is "online but not monitored" state of resources and "online - service is online" in status message. Thank you. (1 Reply)
Discussion started by: mayahari
1 Replies

7. IP Networking

netstat - possible reasons for high IP count ???

One of my servers started getting heavily loaded a few weeks ago for a few hours, so I did some studying and wrote a script to use netstat to get the IP addresses connected and the count. I put a new chain in iptables and if an IP is using more than 40 connections, it gets added to that chain which... (3 Replies)
Discussion started by: PWSwebmaster
3 Replies

8. IP Networking

laymens terms for netstat states

Ok, I've read the manpages on netstat and it gives a good description of the state values such as CLOSE_WAIT, ESTABLISHED, SYN_RECEIVED, etc.. Can someone give me real world situations where you would get these states. LIke for example if I got SYN_RECEIVED what possible situations would be the... (1 Reply)
Discussion started by: eloquent99
1 Replies

Featured Tech Videos