anzahl_connections.pl
#!/usr/bin/perl
#
# Orginal: http://www.brandonhutchinson.com/Timeout_command.html
#
# 2007 - OV angepasst auf RedHat-Pfade und um die Ausgabe des netstats erweitert
#
use strict;
# Zeige IPs ab $threshold gleichzeitigen Verbindungen
my $threshold = 5;
my %cmd_read;
foreach (`/bin/ps axuww | /bin/egrep 'sendmail: server.*cmd read'`) {
$cmd_read{$1}++ if (/sendmail:\sserver.*\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]\scmd\sread$/);
}
# Subroutine to sort hash by ascending value
sub hashValueAscendingNum {
$cmd_read{$a} <=> $cmd_read{$b};
}
print "Liste der IPs mit mehr als $threshold Verbindungen in Status CMD READ\n\n";
# Print sorted results
foreach my $key (sort hashValueAscendingNum (keys(%cmd_read))) {
printf "%-15s (%-d)\n", $key, $cmd_read{$key} if
($cmd_read{$key} >= $threshold);
}
print "\naktuelle Verbindungen auf Port 25: ";
system("netstat -an | grep \"212.34.175.249:25\" | grep \"ESTABLISHED\" | wc -l");
No Comments