#!/usr/local/bin/perl # # usage: cd /var/log/exim; cat main.YYYYMM* | tlstype # pi@opsec.eu, Sun May 6 19:03:44 CEST 2012 # use warnings; use strict; my($t); my($key); my(@t); my($inc); my($out); my($xinc); my($xout); my(%xinc); my(%xout); while() { chop; $t=$_; @t=split(/ /,$t); # incoming if ( defined($t[3]) && $t[3] eq '<=' ) { $inc++; foreach $t (@t) { if ( $t =~ /^X=/ ) { $xinc++; $xinc{$t}++; next; } } } # outgoing elsif ( defined($t[3]) && $t[3] eq '=>' ) { $out++; foreach $t (@t) { if ( $t =~ /^X=/ ) { $xout++; $xout{$t}++; next; } } } } foreach $key (sort { $xinc{$b} <=> $xinc{$a} } keys %xinc) { printf "%7d %s\n", $xinc{$key}, $key; } printf "%7d tls incoming\n", $xinc; printf "%7d total incoming\n\n", $inc; foreach $key (sort { $xout{$b} <=> $xout{$a} } keys %xout) { printf "%7d %s\n", $xout{$key}, $key; } printf "%7d tls outgoing\n", $xout; printf "%7d total outgoing\n", $out;