|
|
1.1 ! root 1: cat <<'E_O_F' >/tmp/$$a ! 2: BEGIN { ! 3: printf("\n\t\t\t\tUUCP Traffic Summary\n\n") ! 4: printf("\t\t\t\tFor the previous 30 days\n\n") ! 5: printf("\t Calls Minutes Files Bytes Effective Unused\n") ! 6: printf("Site To/From To/From To/From Sent/Received Baudrate Bwidth\n") ! 7: E_O_F ! 8: awk '$1 !~ /#/ && $1 !~ /xxx/{print $1,$3}' /usr/lib/uucp/L.sys | sort -u | ! 9: sed 's/\(.*\) \(.*\)/ type["\1"] = "\2"/' >>/tmp/$$a ! 10: cat <<'E_O_F' >>/tmp/$$a ! 11: } ! 12: { ! 13: how = type[$1] ! 14: tcallsto[how] += $2 ! 15: tcallsfrom[how] += $3 ! 16: tminto[how] += $4 ! 17: tminfrom[how] += $5 ! 18: tfilesto[how] += $6 ! 19: tfilesfrom[how] += $7 ! 20: tbytesto[how] += $8 ! 21: tbytesfrom[how] += $9 ! 22: tbaudrate[how] += $10 ! 23: tpercent[how] += $11 ! 24: tfailed[how] += $12 ! 25: tretry[how] += $13 ! 26: tn[how]++ ! 27: } ! 28: name == $1 { ! 29: callsto += $2 ! 30: callsfrom += $3 ! 31: minto += $4 ! 32: minfrom += $5 ! 33: filesto += $6 ! 34: filesfrom += $7 ! 35: bytesto += $8 ! 36: bytesfrom += $9 ! 37: baudrate += $10 ! 38: percent += $11 ! 39: failed += $12 ! 40: retry += $13 ! 41: n++ ! 42: } ! 43: name != $1 { ! 44: if (NR > 1) { ! 45: s = name ! 46: if (failed > 0) { ! 47: s = s "[" failed ! 48: if (retry > 0) ! 49: s = s "/" retry "]" ! 50: else ! 51: s = s "]" ! 52: } else { ! 53: if (retry > 0) ! 54: s = s "[/" retry "]" ! 55: } ! 56: printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %9d/%-9d %6d %5d%%\n", \ ! 57: s, callsto, callsfrom, minto, minfrom, filesto, \ ! 58: filesfrom, bytesto, bytesfrom, baudrate/n, percent/n) ! 59: } ! 60: ! 61: callsto = $2 ! 62: callsfrom = $3 ! 63: minto = $4 ! 64: minfrom = $5 ! 65: filesto = $6 ! 66: filesfrom = $7 ! 67: bytesto = $8 ! 68: bytesfrom = $9 ! 69: baudrate = $10 ! 70: percent = $11 ! 71: failed = $12 ! 72: retry = $13 ! 73: n = 1 ! 74: name = $1 ! 75: } ! 76: END { ! 77: printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %9d/%-9d %6d %5d%%\n", \ ! 78: name, callsto, callsfrom, minto, minfrom, filesto, \ ! 79: filesfrom, bytesto, bytesfrom, baudrate/n, percent/n) ! 80: printf("------------ ----/---- -----/----- -----/----- ---------/--------- ------ -----\n") ! 81: for (i in tn) { ! 82: ! 83: s = i ! 84: if (tfailed[i] > 0) { ! 85: s = s "[" tfailed[i] ! 86: if (tretry[i] > 0) ! 87: s = s "/" tretry[i] "]" ! 88: else ! 89: s = s "]" ! 90: } else { ! 91: if (tretry[i] > 0) ! 92: s = s "[/" tretry[i] "]" ! 93: } ! 94: printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %10d/%-10d %6d %3d%%\n", \ ! 95: s, tcallsto[i], tcallsfrom[i], tminto[i], tminfrom[i], \ ! 96: tfilesto[i], tfilesfrom[i], tbytesto[i], tbytesfrom[i], \ ! 97: tbaudrate[i]/tn[i], tpercent[i]/tn[i]) ! 98: totcallsto += tcallsto[i] ! 99: totcallsfrom += tcallsfrom[i] ! 100: totminto += tminto[i] ! 101: totminfrom += tminfrom[i] ! 102: totfilesto += tfilesto[i] ! 103: totfilesfrom += tfilesfrom[i] ! 104: totbytesto += tbytesto[i] ! 105: totbytesfrom += tbytesfrom[i] ! 106: totbaudrate += tbaudrate[i] ! 107: totpercent += tpercent[i] ! 108: totfailed += tfailed[i] ! 109: totretry += tretry[i] ! 110: totn += tn[i] ! 111: } ! 112: printf("%-12s %4d/%-4d %5d/%-5d %5d/%-5d %10d/%-10d %6d %3d%%\n", \ ! 113: "Total", totcallsto, totcallsfrom, totminto, \ ! 114: totminfrom, totfilesto, totfilesfrom, totbytesto, \ ! 115: totbytesfrom , totbaudrate/totn, totpercen/totn) ! 116: } ! 117: E_O_F ! 118: for i in `grep -l 'UUCP Summary' /usr/msgs/*` ! 119: do ! 120: sed '1,/^Site/d ! 121: /^[ ]*$/,$d ! 122: s;\[/;[0/; ! 123: s;\[\([0-9]*\)\];[\1/0]; ! 124: /\[/s;\([^\[]*\)\[\(.*\)/\(.*\)\]\(.*\);\1 \4 \2 \3; ! 125: s!/! !g ! 126: s/ */ /g ! 127: s/%// ! 128: ' $i ! 129: done | sort | awk -f /tmp/$$a ! 130: rm -f /tmp/$$*
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.