|
|
1.1 ! root 1: #define MAINLINE ! 2: ! 3: #ifdef RCSIDENT ! 4: static char rcsid[] = "$Header: nfstats.c,v 1.7 85/01/18 15:31:24 notes Rel $"; ! 5: #endif RCSIDENT ! 6: ! 7: /* ! 8: * stats - print out the statistics for some notefiles. ! 9: * Takes a list of notefiles, and prints the statistics that are ! 10: * kept about that notefile. ! 11: * A total summary is also presented. ! 12: * ! 13: * Original coding: Ray Essick December 29, 1981 ! 14: * Modified for wildcards: Ray Essick April 8, 1982 ! 15: */ ! 16: #include "parms.h" ! 17: #include "structs.h" ! 18: ! 19: struct when_f ztime; ! 20: char fmtd[DATELEN]; /* for time of report stuff */ ! 21: int statsdone; ! 22: int summary; /* summary only flag */ ! 23: long gnotwrit, ! 24: grspwrit, ! 25: gnotread, ! 26: grspread, ! 27: gnotxmit, ! 28: grspxmit, ! 29: gnotdrop, ! 30: grspdrop, ! 31: gorphans, ! 32: gadopted, ! 33: netwrkouts, ! 34: netwrkins, ! 35: gnotrcvd, ! 36: grsprcvd, ! 37: totaltime, ! 38: entries; ! 39: /* global summaries */ ! 40: ! 41: statone (nfname) ! 42: char *nfname; ! 43: { ! 44: ! 45: struct io_f io; ! 46: if (init (&io, nfname) < 0) ! 47: return; ! 48: ! 49: ! 50: gnotwrit += io.descr.d_notwrit; /* add in global stats */ ! 51: grspwrit += io.descr.d_rspwrit; ! 52: gnotread += io.descr.d_notread; ! 53: grspread += io.descr.d_rspread; ! 54: gnotxmit += io.descr.d_notxmit; ! 55: grspxmit += io.descr.d_rspxmit; ! 56: gnotrcvd += io.descr.d_notrcvd; ! 57: grsprcvd += io.descr.d_rsprcvd; ! 58: gnotdrop += io.descr.d_notdrop; ! 59: grspdrop += io.descr.d_rspdrop; ! 60: gorphans += io.descr.d_orphans; ! 61: gadopted += io.descr.d_adopted; ! 62: netwrkouts += io.descr.netwrkouts; ! 63: netwrkins += io.descr.netwrkins; ! 64: totaltime += io.descr.walltime; ! 65: entries += io.descr.entries; ! 66: gettime (&ztime); ! 67: sprdate (&ztime, fmtd); /* get time now */ ! 68: ! 69: if (summary == 0) ! 70: { ! 71: if (statsdone++ != 0) ! 72: printf ("\n"); ! 73: printf (" %s on %s at %s\n", nfname, io.descr.d_id.sys, fmtd); ! 74: printf (" \tNOTES\tRESPS\tTOTALS\n"); ! 75: printf ("Local Reads \t%ld\t%ld\t%ld\n", io.descr.d_notread, ! 76: io.descr.d_rspread, io.descr.d_notread + io.descr.d_rspread); ! 77: printf ("Local Written \t%ld\t%ld\t%ld\n", ! 78: io.descr.d_notwrit - io.descr.d_notrcvd, ! 79: io.descr.d_rspwrit - io.descr.d_rsprcvd, ! 80: io.descr.d_notwrit + io.descr.d_rspwrit - io.descr.d_notrcvd - io.descr.d_rsprcvd); ! 81: printf ("Networked in \t%ld\t%ld\t%ld\n", io.descr.d_notrcvd, io.descr.d_rsprcvd, ! 82: io.descr.d_notrcvd + io.descr.d_rsprcvd); ! 83: printf ("Networked out \t%ld\t%ld\t%ld\n", io.descr.d_notxmit, io.descr.d_rspxmit, ! 84: io.descr.d_notxmit + io.descr.d_rspxmit); ! 85: printf ("Network Dropped \t%ld\t%ld\t%ld\n", io.descr.d_notdrop, io.descr.d_rspdrop, ! 86: io.descr.d_notdrop + io.descr.d_rspdrop); ! 87: printf ("Network Transmissions: %ld Network Receptions: %ld\n", ! 88: io.descr.netwrkouts, io.descr.netwrkins); ! 89: printf ("Orphaned Responses Received: %ld Orphans Adopted: %ld\n", ! 90: io.descr.d_orphans, io.descr.d_adopted); ! 91: printf ("Entries into notesfile: %ld Total time in notefile: %8.2f minutes\n", ! 92: io.descr.entries, ((float) io.descr.walltime / 60.0)); ! 93: if (io.descr.entries) ! 94: printf ("Average Time/entry: %6.2f minutes\n", ! 95: ((float) io.descr.walltime / 60.0 / (float) io.descr.entries)); ! 96: sprdate (&io.descr.d_created, fmtd); ! 97: printf ("Created at %s, Used on %ld days\n", fmtd, io.descr.d_daysused); ! 98: } ! 99: ! 100: closenf (&io); /* close this notefile */ ! 101: } ! 102: ! 103: ! 104: main (argc, argv) ! 105: char **argv; ! 106: { ! 107: int i; ! 108: struct nflist_f *nfptr; ! 109: ! 110: startup (argc, argv); /* common initialization */ ! 111: ! 112: if (argc == 1) ! 113: { ! 114: printf ("Usage: %s [-s] notefile ...\n", argv[0]); ! 115: exit (BAD); ! 116: } ! 117: ! 118: gnotwrit = grspwrit = gnotread = grspread = 0; ! 119: gnotxmit = grspxmit = gnotrcvd = grsprcvd = 0; ! 120: gnotdrop = grspdrop = gorphans = gadopted = 0; ! 121: netwrkouts = netwrkins = 0; ! 122: totaltime = entries = 0; ! 123: statsdone = 0; /* number of notesfiles reported */ ! 124: summary = 0; /* summary only flag */ ! 125: ! 126: for (i = 1; i < argc; i++) ! 127: { ! 128: if (argv[i][0] == '-') ! 129: switch (argv[i][1]) ! 130: { ! 131: case 's': /* summary only */ ! 132: summary = 1; ! 133: continue; ! 134: ! 135: default: ! 136: printf ("Bad switch `%c'\n", argv[i][1]); ! 137: exit (BAD); ! 138: } ! 139: expand (argv[i]); /* load it */ ! 140: } ! 141: ! 142: while ((nfptr = nextgroup ()) != (struct nflist_f *) NULL) ! 143: statone (nfptr -> nf_name); /* print those stats */ ! 144: ! 145: if ((statsdone > 1) || (summary == 1)) ! 146: { ! 147: printf ("\n Totals for all above notefiles\n"); ! 148: printf (" \tNOTES\tRESPS\tTOTALS\n"); ! 149: printf ("Local Read \t%ld\t%ld\t%ld\n", gnotread, ! 150: grspread, gnotread + grspread); ! 151: printf ("Local Written \t%ld\t%ld\t%ld\n", gnotwrit - gnotrcvd, ! 152: grspwrit - grsprcvd, gnotwrit + grspwrit - gnotrcvd - grsprcvd); ! 153: printf ("Networked in \t%ld\t%ld\t%ld\n", gnotrcvd, grsprcvd, ! 154: gnotrcvd + grsprcvd); ! 155: printf ("Networked out \t%ld\t%ld\t%ld\n", gnotxmit, grspxmit, ! 156: gnotxmit + grspxmit); ! 157: printf ("Network Dropped \t%ld\t%ld\t%ld\n", gnotdrop, grspdrop, ! 158: gnotdrop + grspdrop); ! 159: printf ("Network Transmissions: %ld Network Receptions: %ld\n", ! 160: netwrkouts, netwrkins); ! 161: printf ("Orphaned Responses Received: %ld Orphans Adopted: %ld\n", ! 162: gorphans, gadopted); ! 163: printf ("Entries into notefile: %ld Total time in notefile: %8.2f minutes\n", ! 164: entries, ((float) totaltime / 60.0)); ! 165: if (entries) ! 166: printf ("Average Time/entry: %6.2f minutes\n", ! 167: ((float) totaltime / 60.0 / (float) entries)); ! 168: ! 169: } ! 170: exit (GOOD); ! 171: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.