|
|
1.1 ! root 1: #!/bin/sh ! 2: PATH=:/bin:/usr/bin:/usr/ucb ! 3: export PATH ! 4: rm -f /tmp/cmds /tmp/callsto /tmp/callsfrom /tmp/inuse /tmp/outuse ! 5: touch /tmp/cmds /tmp/inuse /tmp/outuse ! 6: cd /usr/spool/uucp ! 7: if [ $# -gt 0 ] ! 8: then ! 9: what="$1/uucico/* $1/uux*/* $1/xferstats/*" ! 10: else ! 11: if [ -f LOGFILE ] ! 12: then ! 13: what="LOGFILE SYSLOG" ! 14: else ! 15: what="LOG/uucico/* LOG/uux*/* LOG/xferstats/*" ! 16: fi ! 17: fi ! 18: sed -e "s/PATH=.*PATH;// ! 19: /REQUEST/d" $what | ! 20: /bin/awk ' ! 21: BEGIN { fmon = fday = ftime = 99 ! 22: lmon = lday = ltime = 0 } ! 23: $4 ~ /SUCCEEDED|OK/ { ! 24: t = substr($3,index($3,"-")+1,5) ! 25: split(t,time,":") ! 26: if($5 !~ /conversation/) { ! 27: startup[$2] = time[1]*60+time[2] ! 28: date[$2] = substr($3, 2, index($3,"-")-2) ! 29: } ! 30: } ! 31: $4 ~ /FAILED|CAUGHT|OK|TIMEOUT/ { ! 32: if(startup[$2] == 0 || $5 ~ /startup/) ! 33: continue ! 34: t = substr($3,index($3,"-")+1,5) ! 35: split(t,time,":") ! 36: elapsed = time[1]*60+time[2] - startup[$2] ! 37: if (elapsed < 0 ) ! 38: elapsed += 24*60 ! 39: if (elapsed == 0) ! 40: elapsed = 1 ! 41: if(callto[$2] ){ ! 42: totcallto[$2] += elapsed ! 43: numcallto[$2]++ ! 44: printf("%s\t%s\t%02d:%02d - %02d:%02d\n",$2,date[$2],startup[$2]/60,startup[$2]%60,time[1],time[2])>>"/tmp/callsto" ! 45: }else{ ! 46: totcallby[$2] += elapsed ! 47: numcallby[$2]++ ! 48: printf("%s\t%s\t%02d:%02d - %02d:%02d\n",$2,date[$2],startup[$2]/60,startup[$2]%60,time[1],time[2])>>"/tmp/callsfrom" ! 49: } ! 50: callto[$2] = 0 ! 51: startup[$2] = 0 ! 52: } ! 53: $4 ~ /SUCCEEDED/{ ! 54: if ($5 ~ /call/) ! 55: callto[$2]++ ! 56: } ! 57: $4 ~ /FAILED|CAUGHT/{ ! 58: if ($5 ~ /call|conversation|SIGNAL/ ) ! 59: failed[$2]++ ! 60: } ! 61: $5 ~ /sent/{ ! 62: sentbytes[$2] += $7 ! 63: sentfiles[$2] ++ ! 64: seconds[$2] += $9 ! 65: retries[$2] += $11 ! 66: havout = 1 ! 67: outuse[$1] = $1 ! 68: outusebytes[$1] += $7 ! 69: outusefiles[$1] ++ ! 70: outusesecs[$1] += $9 ! 71: } ! 72: $5 ~ /received/{ ! 73: recbytes[$2] += $7 ! 74: recfiles[$2] ++ ! 75: seconds[$2] += $9 ! 76: retries[$2] += $11 ! 77: havin = 1 ! 78: inuse[$2 "!" $1] = $2 "!" $1 ! 79: inusebytes[$2 "!" $1] += $7 ! 80: inusefiles[$2 "!" $1] ++ ! 81: inusesecs[$2 "!" $1] += $9 ! 82: } ! 83: $5 ~/XQT/{ ! 84: if( $7 ~ /!|@/ && $6 ~ /rmail/) ! 85: printf("%s\t%s\t%-8s\t%s\n",substr($3,2,index($3,"-")-2),substr($3,index($3,"-")+1,5),$2 "!" $4,$7)>>"/tmp/cmds" ! 86: } ! 87: $4 ~/XQT/{ ! 88: if ($1 ~ /uucp|daemon|root|news/ || $7 != "rmail") ! 89: continue ! 90: printf("%s\t%s\t%-8s\t%s!%s\n",substr($3,2,index($3,"-")-2),substr($3,index($3,"-")+1,5),$1,$2,$7)>>"/tmp/cmds" ! 91: } ! 92: $10 ~/secs/ { ! 93: curtime = substr($4, 5, 6) ! 94: dtmp = curtime - int($9) - lasttime[$2] ! 95: if (dtmp > 0 && dtmp < 20) ! 96: dead[$2] += dtmp ! 97: lasttime[$2] = curtime ! 98: live[$2] += $9 ! 99: } ! 100: { ! 101: n = index ($3, "/") ! 102: thismon = 0 ! 103: if (n > 0 ) { ! 104: thismon = int(substr($3, 2, n-2)) ! 105: if (lmon < thismon) ! 106: lmon = thismon ! 107: if (thismon < fmon) ! 108: fmon = thismon ! 109: } ! 110: m = index ($3, "-") ! 111: n++ ! 112: thisday = 0 ! 113: if( (m-n) > 0 ) { ! 114: thisday = int(substr($3, n, m-n)) ! 115: if ((lday < thisday) && (lmon == thismon) || ldaymon != lmon) { ! 116: lday = thisday ! 117: ldaymon = thismon ! 118: } ! 119: if ((thisday < fday) && (fmon == thismon) || fdaymon != fmon) { ! 120: fday = thisday ! 121: fdaymon = thismon ! 122: } ! 123: } ! 124: thistime = substr($3,m+1,5) ! 125: if ((ltime < thistime) && (lmon == thismon) && (lday == thisday)) ! 126: ltime = thistime ! 127: if ((thistime < ftime) && (fmon == thismon) && (fday == thisday)) ! 128: ftime = thistime ! 129: } ! 130: END{ ! 131: printf("\n\t\t\t\tUUCP Traffic Summary\n\n") ! 132: printf("\t\t\t\tFrom %d/%d %s To %d/%d %s\n\n",fmon,fday,ftime,lmon,lday,ltime) ! 133: printf("\t Calls Minutes Files Bytes Effective Unused\n") ! 134: printf("Site[Failed] To/From To/From To/From Sent/Received Baudrate Bandwidth\n") ! 135: for( i in startup ){ ! 136: if(seconds[i]== 0)seconds[i]++ ! 137: if(dead[i]+live[i]) ! 138: percent = dead[i]*100/(dead[i]+live[i]) ! 139: else ! 140: percent = 0 ! 141: if (failed[i] || retries[i]) { ! 142: temp = i "[" failed[i] ! 143: if (retries[i]) ! 144: temp = temp "/" retries[i] "]" ! 145: else ! 146: temp = temp "]" ! 147: } else ! 148: temp = i ! 149: printf("%-12s %3d/%-3d %5d/%-5d %4d/%-4d %8d/%-8d %6d %5d%%\n",\ ! 150: temp,numcallto[i],numcallby[i],\ ! 151: totcallto[i],totcallby[i],\ ! 152: sentfiles[i],recfiles[i],\ ! 153: sentbytes[i],recbytes[i],\ ! 154: (recbytes[i]+sentbytes[i])*8/seconds[i],\ ! 155: percent) ! 156: } ! 157: printf("\n\n\n\t\t\t\tOriginating Users\n\n") ! 158: printf("User\t\t Minutes Files Bytes\n\n") ! 159: if (havout == 1) { ! 160: for (i in outuse) { ! 161: printf("%-21s %5d %7d %8d\n", i,\ ! 162: (outusesecs[i]+30)/60,\ ! 163: outusefiles[i], outusebytes[i]) >> "/tmp/outuse" ! 164: } ! 165: } ! 166: if (havin == 1) { ! 167: for (i in inuse) { ! 168: printf("%-21s %5d %7d %8d\n", i,\ ! 169: (inusesecs[i]+30)/60,\ ! 170: inusefiles[i], inusebytes[i]) >> "/tmp/inuse" ! 171: } ! 172: } ! 173: }' ! 174: ! 175: sort /tmp/outuse ! 176: echo " " ! 177: sort /tmp/inuse ! 178: echo " " ! 179: echo " " ! 180: echo " " ! 181: echo " Long Distance Calls" ! 182: echo ! 183: echo "To Day Start - End From Day Start - End" ! 184: cat >/tmp/$$local<<!!! ! 185: /^ut/d ! 186: !!! ! 187: sed -f /tmp/$$local /tmp/callsto | /bin/awk ' ! 188: { ! 189: if (last == $1) ! 190: pr = "" ! 191: else { ! 192: last = $1 ! 193: pr = $1 ! 194: } ! 195: if (pr == "" && date == $2) ! 196: pd = "" ! 197: else { ! 198: date = $2 ! 199: pd = $2 ! 200: } ! 201: printf("%s\t%s\t%s - %s\n",pr,pd,$3,$5) ! 202: }'>/tmp/$$a ! 203: sed -f /tmp/$$local /tmp/callsfrom | /bin/awk ' ! 204: { ! 205: if (last == $1) ! 206: pr = "" ! 207: else { ! 208: last = $1 ! 209: pr = $1 ! 210: } ! 211: if (pr == "" && date == $2) ! 212: pd = "" ! 213: else { ! 214: date = $2 ! 215: pd = $2 ! 216: } ! 217: printf("%s\t%s\t%s - %s\n",pr,pd,$3,$5) ! 218: }'>/tmp/$$b ! 219: pr -t -m /tmp/$$a /tmp/$$b | uniq ! 220: rm -f /tmp/$$[ab] ! 221: sed -e " ! 222: /rmail seismo!/d ! 223: /rmail rlgvax!/d ! 224: /rmail rochester!/d ! 225: /rmail umcp-cs!/d ! 226: /rmail brl-tgr!/d ! 227: /rmail brl-vgr!/d ! 228: s/)$// ! 229: " /tmp/cmds >/tmp/$$c ! 230: if [ -s /tmp/$$c ] ! 231: then ! 232: echo " " ! 233: echo " " ! 234: echo " " ! 235: echo " Outgoing Mail from Other Sites" ! 236: echo ! 237: echo "Day Time From To" ! 238: cat /tmp/$$c ! 239: fi ! 240: rm -f /tmp/cmds /tmp/$$* /tmp/callsto /tmp/callsfrom /tmp/inuse /tmp/outuse
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.