DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T l

⟦ea7b9235b⟧ TextFile

    Length: 3275 (0xccb)
    Types: TextFile
    Names: »line.awk«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« 
        └─⟦e5a54fb17⟧ 
            └─⟦this⟧ »pp-5.0/Tools/statgen/line.awk« 

TextFile

#! /bin/sh

awk '
BEGIN { 
	FS = "|"
	minday = minmonth = 999
}
$3 == "DR_good" {
	good_drs ++
	next
}
$3 == "totalDR" {
	drs_generated ++
}
$3 == "DR" {
	if (NF != 12) {
		print "Bad record line NR", $0 | "cat 1>&2"
		next
	}
	drs_generated ++
}
$3 == "dr_ok" {
	if (NF != 8) {
		print "Bad record line NR", $0 | "cat 1>&2"
		next
	}
	drs_passed ++
}
$3 == "dr_failed" {
	if (NF != 8) {
		print "Bad record line NR", $0 | "cat 1>&2"
		next
	}
	drs_failed ++
}
$3 == "ok" || $3 == "ok-testfailed" || $3 == "failed" {
	if (NF != 12) { 
		print "Bad record line NR", $0 | "cat 1>&2"
		next
	}
	if (NR == 1) {
		first_month = $1; first_day = $2
	}
	last_month = $1; last_day = $2

	if ($3 != "ok") {
		failed ++
		failure_addr[$3] ++
		if (fm[$4] == 0) {
			failure_msgs[$3] ++
			fm[$4] = 1
		}
	}

	total_addr ++
	if (im[$4] == 0) {
		total_msgs ++
		total_size += $7
		im[$4] = 1
		inchan_size[$5] += $7
		if (ih[$5] == 0) {
			total_inmta ++
			inchan_nhosts[$5] ++
			ih[$5] = 1
		}
		inchan_nmsgs[$5] ++
	}
	inchan_naddr[$5] ++

	if (om[$4 $6] == 0) {
		om[$4 $6] = 1
		outchan_size[$6] += $7
		if (oh[$6] == 0) {
			total_outmta ++
			outchan_nhosts[$6] ++
			oh[$6] = 1
		}
		outchan_nmsgs[$6] ++
	}
	outchan_naddr[$6] ++;

	
	cp = $5 " -> " $6
	chpair_naddr[cp] ++
	if (cm[$4 cp] == 0) {
		cm[$4 cp] = 1
		chpair_size[cp] += $7
		chpair_nmsgs[cp] ++
	}
}
END {
	printf "SUMMARY for period %d/%d to %d/%d\n", \
		first_month, first_day, last_month, last_day

	printf "%-20s: %d\n", "Messages", total_msgs
	printf "%-20s: %d\n", "Addresses", total_addr
	printf "%-20s: %d\n", "Bytes", total_size
	printf "%-20s: %d\n", "Inbound MTAs", total_inmta
	printf "%-20s: %d\n", "Outbound MTAs", total_outmta
	if (good_drs)
		printf "%-20s: %d\n", "Positive DR's", good_drs
	if (drs_passed)
		printf "%-20s: %d\n", "DRs relayed", drs_passed
	if (drs_failed)
		printf "%-20s: %d\n", "DRs relayed", drs_failed
	if (drs_generated)
		printf "%-20s: %d\n", "DRs generated", drs_generated
	if (failed) {
		for (i in failure_addr)
			printf "%-20s: %d Addrs %d Msgs\n", "Failure - " i, \
				failure_addr[i], failure_msgs[i]
	}
	print "\n"

	print "Inbound Channel Totals"
	title =  "Channel"
	maxw = length(title)
	for (i in inchan_naddr)
		if (length(i) > maxw)
			maxw = length(i)
	format = "%-" maxw "s %8d %8d %12d\n"
	printf "%-" maxw "s %8s %8s %12s\n", title, \
		"Msgs", "Addr", "Bytes", "MTAs"
	for (i in inchan_naddr)
		printf format, i, \
			inchan_nmsgs[i], inchan_naddr[i], \
			inchan_size[i],	inchan_nhosts[i]

	print ""; print "";
	print "Outbound Channel Totals"
	title = "Channel"
	maxw = length(title)
	for (i in outchan_naddr)
		if (length(i) > maxw)
			maxw = length(i)
	
	printf "%-" maxw "s %8s %8s %12s\n", title,\
		"Msgs", "Addr", "Bytes", "MTAs"

	for (i in outchan_naddr)
		printf "%-" maxw "s %8d %8d %12d\n", i, \
			outchan_nmsgs[i], outchan_naddr[i], \
			outchan_size[i], outchan_nhosts[i]

	print ""; print ""
	print "Channel Pair Totals"
	title = "Channel"
	maxw = length(title)
	for (i in chpair_naddr)
		if (length(i) > maxw)
			maxw = length(i)
	printf "%-" maxw "s %8s %8s %12s\n", title, \
			"Msgs", "Addrs", "Bytes"
	for (i in chpair_naddr)
		printf "%-" maxw "s %8d %8d %12d\n", i, \
			chpair_nmsgs[i], chpair_naddr[i], chpair_size[i]

}' $*