⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 access-log-matrix.pl

📁 -
💻 PL
字号:
#!/usr/local/bin/perl# access-log-matrix.pl# # Duane Wessels, Dec 1995# # Stdin is a Harvest access log (in the old, non-common logfile format!).# The output is a matrix of hostnames and log entry types, plus totals.while (<>) {	chop;	@F = split;	$when = $F[0];	$first = $when unless ($first);	$last = $when;		$what = pop @F;	$size = pop @F;	$host = pop @F;	$HOSTS{$host}++;	$HOSTS{'TOTAL'}++;		if ($what eq 'TCP_DONE') {		$TCP_DONE{$host}++;		$TCP_DONE{'TOTAL'}++;	} elsif ($what eq 'TCP_HIT') {		$TCP_HIT{$host}++;		$TCP_HIT{'TOTAL'}++;	} elsif ($what eq 'TCP_MISS') {		$TCP_MISS{$host}++;		$TCP_MISS{'TOTAL'}++;	} elsif ($what eq 'TCP_MISS_TTL') {		$TCP_MISS_TTL{$host}++;		$TCP_MISS_TTL{'TOTAL'}++;	} elsif ($what eq 'UDP_HIT') {		$UDP_HIT{$host}++;		$UDP_HIT{'TOTAL'}++;	} elsif ($what eq 'UDP_MISS') {		$UDP_MISS{$host}++;		$UDP_MISS{'TOTAL'}++;	} else {		$OTHER{$host}++;		$OTHER{'TOTAL'}++;	}}print  '       HOSTNAME: '. `hostname`;($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdat) = localtime($first);printf "FIRST LOG ENTRY: %s/%s/%s %.2d:%.2d:%.2d\n", $year,$mon+1,$mday, $hour,$min,$sec;($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdat) = localtime($last);printf " LAST LOG ENTRY: %s/%s/%s %.2d:%.2d:%.2d\n", $year,$mon+1,$mday, $hour,$min,$sec;print "\n";printf ("%25.25s %5s %5s %5s %5s %5s %5s %5s %5s\n",	'',	'TCP', 'TCP', 'TCP', 'TCP',	'UDP', 'UDP', '',	'');printf ("%25.25s %5s %5s %5s %5s %5s %5s %5s %5s\n",	'HOST',	'HIT', 'MISS', 'TTL', 'DONE',	'HIT', 'MISS', 'OTHER',	'TOTAL');printf ("%25.25s %5s %5s %5s %5s %5s %5s %5s %5s\n",	'-'x25,	'-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5);foreach $h (sort totalcmp keys %HOSTS) {	next if ($h eq 'TOTAL');	($a1,$a2,$a3,$a4) = split('\.', $h);	($fqdn, @F) = gethostbyaddr(pack('C4',$a1,$a2,$a3,$a4),2);	$fqdn = $h unless ($fqdn ne '');	printf "%25.25s %5d %5d %5d %5d %5d %5d %5d %5d\n",		$fqdn,		$TCP_HIT{$h},		$TCP_MISS{$h},		$TCP_MISS_TTL{$h},		$TCP_DONE{$h},		$UDP_HIT{$h},		$UDP_MISS{$h},		$OTHER{$h},		$HOSTS{$h};}printf ("%25.25s %5s %5s %5s %5s %5s %5s %5s %5s\n",	'-'x25,	'-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5, '-'x5);printf "%25.25s %5d %5d %5d %5d %5d %5d %5d %5d\n",	'TOTAL',	$TCP_HIT{'TOTAL'},	$TCP_MISS{'TOTAL'},	$TCP_MISS_TTL{'TOTAL'},	$TCP_DONE{'TOTAL'},	$UDP_HIT{'TOTAL'},	$UDP_MISS{'TOTAL'},	$OTHER{'TOTAL'},	$HOSTS{'TOTAL'};exit 0;sub hostcmp {	$a cmp $b}sub totalcmp {	$HOSTS{$b} <=> $HOSTS{$a}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -