.FL SUBSTITUTE .PS 58,80 .STHL 4 .LM 10 .RM 70 .SP1 .NHY .FG 20 .C ;AKCOUNT .C ;-- VAX/VMS V4.x ACCOUNTING SOFTWARE -- .B .C ;by .B .C ;Ken Trumbley .C ;Martin Serrer .B .SDT 1,9,1986 .C ;$$DAY-$$MONTH-$$YEAR .PS 58,70 .IFNOT CONREQ .IF CONGET .LM 10 .RM 70 .PG .REQUIRE "AKDOC.RNT" .ENDIF CONGET .ENDIF CONREQ .NFL SUBSTITUTE .LM 10 .RM 70 .CH Introduction .LM 10 .HL 1 Introduction: .LM +3 .P The AKCOUNT software has been designed to provide a VAX computer installation running V4.x of VMS operating system software with all the necessary accounting tools to charge users for resources used. The package includes all source code, associated help files, command procedures and installation notes. .P The software in SYSTEMS LABORATORY of NRC has been set up as a batch job to execute every Friday night. When the job runs, the information from the system accounting file, plus listing files from DISKQUOTA and AUTHORIZE are merged together and written to a file "SYS$ACCOUNT:AKCOUNT.TOT". A report generator reads this file and creates detailed or summary type printouts. .P The latest addition to the AKCOUNT software package is a repair utility. This utility enables the system manager to repair, (both automatically and interactively), and edit records in the AKCOUNT.TOT file. .LM 10 .RM 70 .CH AKCOUNT INSTALLATION .LM 10 .HL 1 installation .LM +3 .P We at Systems Lab. installed the AKCOUNT software in a subdirectory off the system managers account. Because the AKCOUNT software must restart accounting as well as run various system images, it was convenient to use the power of the system managers account with all its privileges. If in your installation, it is desired to place the software source code somewhere else, that is no problem because no logical names point to the source code directory. The only logical name to be defined is SYS$ACCOUNT and it points to the location of the executable images for AKCOUNT. The following details the installation of the AKCOUNT software as we at NRC have placed it. .LS .LE;Login to the system managers account which should put you at SYS$SYSROOT:[SYSMGR] .LE;Copy the distributed source files to a subdirectory. We placed the files at SYS$SYSROOT:[SYSMGR.ACCOUNT.SOURCE] .LE;Define a system wide logical name SYS$ACCOUNT to point to where you want the executable images and data files to reside. We chose SYS$SYSROOT:[SYSMGR.ACCOUNT]. .LE;Edit the site specific system startup file "SYS$MANAGER:SYSTARTUP.COM" and include the file [SYSMGR.ACCOUNT.SOURCE]SYSTARTUP.TXT into it. This small file contains the system assignment for the logical name SYS$ACCOUNT plus a few DCL commands which restarts the AKCOUNT batch job every time the system is rebooted. See appendix B for a copy of SYSTARTUP.TXT. .PG .LE;Copy the batch command files AKCOUNT.COM and AKRUN.COM to SYS$ACCOUNT: .LE;Edit SYS$ACCOUNT:AKRUN.COM and do the following: .LM+1 .LS 0,"-" .LE;Look for the line : .LIT "$ AKTIME FRIDAY,23:59:59" .EL and if you want the AKCOUNT software to run on a specific day at a certain time then replace the day and time, for example, to run on Monday at noon then change the line to: .LIT "$ AKTIME MONDAY,12:00:00" .EL Note: The form of the day and time string is VERY unforgiving so be careful to follow the example exactly. .LE;The next 30 lines of AKRUN.COM are the commands necessary to produce the desired detailed and summary printouts. A more detailed explanation of the report generator switches and capabilities are described in section 3.2 with examples of the various printouts in appendix C. The four possible printout formats are described as WEEKLY SUMMARY, YEAR TO DATE SUMMARY, DETAILED SINGLE USER, and DETAILED SINGLE USER WITH CHARGE RATE TABLE. Each may be enabled by uncommenting the appropriate lines. Note that the report generator can be run at any time, interactively, to produce any of the printout formats. .LE;The line which does a PRINT/DELETE of all AKCOUNT.LIS files should be modified if you want to keep the files or direct them to another printer queue. .LE;This completes the editting of the file AKRUN.COM. .ELS .LM-1 .LE;Edit the file AKCONFIG.INC and using the description of each parameter as described in section 2.3, modify all necessary values to suit your site environment. .LE;Build the AKCOUNT software with the command "$ @AKBUILD.COM". .LE;Set default directory to SYS$ACCOUNT: .PG .LE;Start the AKCOUNT batch job running with the command "$ @SYS$ACCOUNT:AKCOUNT RESTART". Note that the batch job can be started with the parameter "RESTART", "OLD" and no parameter which defaults to "NORMAL". The RESTART parameter forces the procedure to reschedule the job to the next day specified by the line "AKTIME FRIDAY,23:59:59" in AKRUN.COM. The OLD parameter forces the procedure to assume that the system accounting file has already been renamed to ACCOUNTNG.OLD and then runs DISKQUOTA, AUTHORIZE and AKCOUNT.EXE. This places a new set of user records at the end of the file AKCOUNT.TOT. Normally the OLD parameter is not used unless for some reason the AKCOUNT batch job did not run successfully. The last possibility is no parameter, which defaults to NORMAL running of the complete batch job. .ELS .PG .LM 10 .HL 1 upgrade .LM +3 .P The upgrade of the AKCOUNT software from version 3 to version 4 of VMS requires the system manager to copy all the new files to the location where all the version 3 files are stored. Delete the new copy of the AKCONFIG.INC file as this has not changed, or else, edit this file as per the new installation instructions. .P Copy the command files AKCOUNT.COM and AKRUN.COM to SYS$ACCOUNT. These new files have been changed so edit AKRUN.COM and modify it as per the new installation instructions. .P Build the complete package with the command file AKBUILD.COM then submit the procedure using the command: .lit $ @SYS$ACCOUNT:AKCOUNT RESTART .EL .P In the system startup file, SYS$MANAGER:SYSTARTUP.COM, replace the commands which start AKCOUNT after a reboot by the commands in the supplied file SYSTARTUP.TXT . .PG .LM 10 .HL 1 Configuration: .LM +3 .P The items which can be easily modified are contained in a file called "AKCONFIG.INC". Each time the accounting software is compiled, this file is included. It is advisable to edit AKCONFIG.INC before building AKCOUNT the first time. Currently the parameters defined, are the values we at SYSTEMS Laboratory use. Our charging scheme is based on the charges set by the NRC Computation Center which is run on a profit basis. We on the other hand do not plan on making a profit as we do not charge laboratory personnel for computer time, rather, we only charge some outside companies. Appendix A is a copy of the AKCONFIG.INC file. The following table describes each parameter and its significance. .LS .LE;TOTAL__REPLACEMENT__COST -- This value is the total cost of replacing the computer system hardware plus all peripherals. If your system was originally purchased as a "system" then DEC do not mind supplying prices each year. We at SYSTEMS LAB. purchased our VAX as an upgrade which means "bits and pieces", so every year when we ask DEC for current replacement costs, we get very slow response. We deduct all discounts from this value as well. This value is only used in the calculation of CHG__RATE described below. .LE;YEARLY__MAINTENANCE -- This parameter is the total cost of your hardware and software maintenance contracts with DEC for one year plus any other software or hardware maintenance costs for non-DEC equipment and software. We deduct all discounts from this cost. This value is only used in the calculation of CHG__RATE described below. .PG .LE;CHG__RATE -- This is a value calculated as the total replacement cost of the VAX hardware plus the yearly hardware and software maintenance costs divided by the number of working hours in a year. Since our computer tends to be used 99.9% of the time during normal working hours, we calculate the charge rate accordingly. If your VAX is used more extensively, then the CHG__RATE equation can be modified as long as any new variables are defined explicitly at the beginning of the file "AKCONFIG.INC". The charge rate is used in the calculation of the following 13 parameters. .LE;P__CNT__TIM__RATE and N__CNT__TIM__RATE are parameters which describe the cost per hour during prime time and non-prime time for each hour a user is logged onto the VAX regardless of what the user is doing. This is commonly called connect time. .LE;P__CPU__TIM__RATE and N__CPU__TIM__RATE are parameters which define the cost per hour during prime time and non-prime time for each CPU hour a user uses. .LE;P__BAT__TIM__RATE and N__BAT__TIM__RATE are parameters which define the cost per hour for batch CPU prime time and non-prime time. .LE;PRT__PAG__RATE and PRT__JOB__RATE are parameters which concern print jobs. PRT__PAG__RATE is the cost per printed page. PRT__JOB__RATE is the cost per print job where in our lab, each user removes their own printout from the printer which tends to waste 3 extra pages per job. If your lab has an operator tend the line printer it may be necessary to adjust these two values. .LE;VOL__MNT__RATE is the cost for each volume mounted. In our lab users load their own magtapes and disks so the cost tends to be lower. Because they do very little volume mounting, the cost tends to be higher. The overall effect of charging users for volume mounting therefore is negligible. In your environment, if you have an operator mounting tapes or disks, this cost should be higher. .PG .LE;BUF__IO__RATE and DIR__IO__RATE is the cost for each buffered and direct I/O to such devices as terminals, disk drives and magtape drives. These values impact the most on users of such packages as CAD stations where large amounts of communications goes on between the VAX and terminals as well as a lot of file manipulation. Large CPU bound jobs do not get charged at all from these parameters except possible in page faulting. .LE;PAG__FLT__RATE is the cost per page fault. Any program which has been poorly designed will be affected by this parameter. Users who become familiar with the costs per page fault often ask how they can make their programs more efficient. .LE;DSK__BLK__RATE is the cost per week for each disk block currently in use. Users with savings in mind should be made aware of the cost of keeping old unused copies of programs or even multiple copies of programs around. .LE;PRIME__START__HOUR, PRIME__START__MINUTE, PRIME__END__HOUR and PRIME__END__MINUTE define the limits of prime time for the AKCOUNT software package. In our lab, we work from 8am to 4:15pm so have set the four parameters accordingly. .LE;HEADER__STR is a string variable in which a subtitle string is stored. Each printout from the report generator, AKREPORT.EXE, has this subtitle included. This variable is defined as: CHARACTER*80 so limit the string length to 80 characters. .LE;END__FISCAL__DAY and END__FISCAL__MONTH define the end of a fiscal year. In the Canadian government, the fiscal year is April 1 to March 31 so these two parameters are set to March 31. .ELS .LM 10 .RM 70 .CH AKCOUNT CODE DESCRIPTION .LM 10 .HL 1 AKCOUNT.EXE Description: .LM +3 .P This image gathers all relevant accounting information from various files and condenses it into a more compact form which will then be readable by the report writer AKREPORT.EXE. Three input and one output files are used by this image. .LIT Input files : 1) SYS$SYSTEM:SYSUAF.LIS Created by AKCOUNT.COM, the USERNAME, UIC and ACCOUNT name are extracted from here 2) SYS$SYSTEM:DSKUSG.LIS Created by AKCOUNT.COM, the DISKBLOCKS/UIC currently being used is extracted from here. 3) SYS$ACCOUNT:ACCOUNTNG.OLD Created by the VMS Accounting Manager, the extension is changed from .DAT to .OLD by AKCOUNT.COM otherwise it is untouched. From here all other good things like CPU time,Pages printed,etc. is extracted. Output file : 1) SYS$ACCOUNT:AKCOUNT.TOT This is the file containing the condensed accounting information. It is organized as a sequential access file with fixed length records of 128 Bytes. This file grows each time the AKCOUNT.EXE image is run by ( # of users x 128 ) bytes. .EL .PG .LM 10 .HL 1 AKREPORT.EXE Description: .LM +3 .P The report generator is design to be run interactively. In order to run it from a command procedure, the logical name SYS$OUTPUT should be assigned to be a file. An example of this can be seen in the procedure "AKCOUNT.COM". Generally speaking the report generator (depending on the switches set in the command line) extracts the necessary information from the file SYS$ACCOUNT:AKCOUNT.TOT and creates the required listing which is normally displayed on the users terminal. Examples of the various printouts are shown in appendix C. The command switches available are: .LIT AKREPORT Command Switches ------------------------- /SUMMARY - Printout should be in the form of one line per username. Default = NOSUMMARY, detailed printout where each user record is displayed as one terminal screen full. /INPUT=filename - User records will be extracted from this file instead of SYS$ACCOUNT:AKCOUNT.TOT /OUTPUT=filename - Printout will be inserted in this file instead of going to the user's terminal. Default is the User's terminal. If filename not included, default is AKREPORT.LIS /BEGIN=date - Start search for user records from this date. Defaults to latest user records in file. /END=date - End search of AKCOUNT file as of that date, defaults to latest user records in file. /PRINT - Send output file defined by OUTPUT switch to line printer. File is deleted after printing. /RATE_TABLE - Append current charges per resource, table at end of listing. /NOTOTAL - Disable totalize of all user resources and charges. Default = TOTALIZE. /HELP - Puts the user into the interactive HELP facility which describes AKREPORT. /SORT=USERNAME - Sort printouts by one of these ACCOUNT fields, (default = USERNAME) UIC ( Sort in ascending order ) DISK_USAGE PRINTED_PAGES CHARGES /DSORT=USERNAME - Sort printouts by one of these ACCOUNT fields, (default = USERNAME) UIC ( Sort in descending order ) DISK_USAGE PRINTED_PAGES CHARGES /ACCOUNT=account - Printout only those users who are in this account. /LAST_LOGIN - Date the user last logged into their account. NOTES: 1. The date and filenames described above have the following forms, (DO NOT insert spaces in strings). The filename is optional and defaults to that as described for the appropriate command switch. date = 2-JAN-1984 filename = SYS$ACCOUNT:AKCOUNT.Y83 2. The command switches are checked for the first three characters being correct. .EL .PG .LM 10 .HL 1 AKREPAIR.EXE Description: .LM +3 .P The repair utility is designed to check, repair, and edit the AKCOUNT.TOT file. .P The checking function involves sequentially reading each record of the AKCOUNT.TOT file and examining it for erroneous data in certain fields. Errors detected will cause a significant error message to be printed on the user's terminal. The check function does not alter the AKCOUNT.TOT file. .P The repair function takes the checking function one step further. When an error is detected, the utility will if in autofix mode, perform a reasonable fix automatically, or if in interactive mode, prompt the user for their choice of fix. The repair function will create a new version of the AKCOUNT.TOT file unless the utility was aborted via a control-C, control-Y or QUIT selection. Selections available to the user are: .LIT EXIT - exit utility and save all changes QUIT - abort utility, keep original AKCOUNT.TOT DELETE_RECORD - delete user record EDIT_RECORD - edit user record .EL .P The edit function allows the user to examine header and/or user records and to modify fields within the record. This function will create a new version of the AKCOUNT.TOT file unless the utility was aborted via a control-C, control-Y or QUIT selection. Selections available to the user are: .LIT EXIT - exit utility and save all changes QUIT - abort utility, keep original AKCOUNT.TOT DELETE_RECORD - delete user record EDIT_RECORD - edit user record .EL The command switches available are: .LIT AKREPAIR Command Switches ------------------------- no switches - Check the AKCOUNT.TOT file for errors. /FIX - Interactive repair function where user is prompted for action after an error is detected. Default = NOFIX /AUTOFIX - Automatic repair function where fix is performed automatically. Default = NOAUTOFIX /EDIT - Edit function allows modifying data in fields of either header records, user records or both. Must be used with either /HEADER or /USER switch or else the utility prompts for edit type. /HEADER - Used with the /EDIT switch to allow user to examine and modify header type records. /USER - Used with the /EDIT switch to allow user to examine and modify user type records. /INPUT=filename - User records will be extracted from this file instead of SYS$ACCOUNT:AKCOUNT.TOT /OUTPUT=filename - Output will be inserted in this file instead of going to the input file. The default is SYS$ACCOUNT:AKCOUNT.TOT. /BEGIN=date - Start search for user or header records from this date. Defaults to beginning of file. /END=date - End search for user or header records as of that date, defaults to end of file. /HELP - Puts the user into the interactive HELP facility which describes AKREPAIR. NOTES: 1. The date and filenames described above have the following forms, (DO NOT insert spaces in strings). The filename is optional and defaults to that as described for the appropriate command switch. date = 2-JAN-1984 filename = SYS$ACCOUNT:AKCOUNT.Y83 2. The command switches are checked for the first three characters being correct. .EL .PG .LM 10 .HL 1 AKTIME.EXE Description: .LM +3 .P The AKTIME program accepts as input a day of the week and a time in the format, ie. MONDAY,13:00:00 . It then calculates an absolute and delta time from current time till requested time. The results are saved as symbols in the process' local symbol table. These symbols can then be used by such DCL commands as "SUBMIT/AFTER='ABSOL__DATE'. Various other symbols are also defined at the same time. The following list describes each symbol. .LIT DELTA_DATE - This is the number of days, hours, minutes and seconds from the current SYSTEM time to the time specified in the input. ABSOL_DATE - This is the day, month, year and time specified in the input. AK_DATE - Day, month, year and time for AKCOUNTing, where if the fiscal year changes then AK_DATE is set to the end of the fiscal year. AK_FISCAL - Flag = "YES" when end of fiscal year crossed else = "NO". AK_START - Day, month, year for start of current fiscal year CURRENT_DAY - This Symbol contains the current DAY-OF-WEEK ( ie. CURRENT_DAY = "WEDNESDAY") NEXT_DAY - This Symbol contains the DAY-OF-WEEK for tomorrow ( ie. NEXT_DAY = "THURSDAY") .EL .LM 10 .RM 70 .CH PROBLEMS, RESTRICTIONS and PATCHES .LM 10 .HL 1 AKCOUNT problems: .LM +3 .LS .LE;Several accounts with the same UIC will cause problems as the first account alphabetically will be charged with all the disk space while all the other accounts with this same UIC will be charged with zero disk blocks. This is an inherent problem of VMS. .ELS .LM 10 .HL 1 AKCOUNT restrictions: .LM +3 .LS .LE;At the time of generating the AKCOUNT code, we at NRC, set the parameters END__FISCAL__DAY/MONTH in the file AKCONFIG.INC to be March 31. These parameters are only used in AKTIME.FOR. Setting these parameters to be other than the end of a month has not been tested. Of course the code looks good but thats no substitution for actual testing. .ELS .PG .LM 10 .HL 1 AKCOUNT patches: .LM +3 .LS .LE;25-Jun-1984 .P Fixed problem where a username has been removed from the SYSUAF file and the AKCOUNT software finds a valid record for that account. The software added this username to the list of valid users but the name itself was padded with nulls rather then spaces as normal valid usernames were. The same problem was seen in the account field. The fix comprised two patches, one to AKGETREC.FOR and one to AKTOTALS.FOR. The patch to AKGETREC was to prevent this problem from happening again while the patch to AKTOTALS was to fix the problem in the AKCOUNT.TOT file if it has happened before without notice. .LE;31-Jul-1984 .P Added NOTOTAL, PRINT, OUTPUT command switches so user can request a detailed printout of all resources used and their total cost for a single account to be sent to the user's terminal or saved in a file or printed to the line printer. The default for AKREPORT has been set to TOTALIZE so that if a user makes an error in a request and the printout is directed to the line printer, the file printed will be small instead of large. The patches were made to the AKREPORT.FOR, AKPRINT.FOR, AKSWITCH.FOR, and AK.INC routines. .P Fixed problem with RATE__TABLE command switch. This switch should have forced a printout of the VAX cost per resource table for both summary and detailed printouts. Unfortunately, the table was not printed when the SUMMARY command switch was used. The patch to correct this problem was made to the AKPRINT.FOR routine. .P Modified AKCOUNT.COM by breaking it apart into site dependent, (AKRUN.COM) and site independent, (AKCOUNT.COM) command files. .PG .LE;2-Nov-1984 .P Added SORT and ACCOUNT switches to AKREPORT code. Fixed printout so extra form feed to printer removed. Added ACCOUNT field to summary printout. .LE;1-Feb-1985 .P Added new sorting fields PRINTED__PAGES and CHARGES, as well as adding a descending sort switch /DSORT. Added a new switch /LAST__LOGIN, which replaces the fields "Log count" and "Log fail" in summary printouts with the field "Date of last login". This field was added to the single user printout as well. .P Fixed problem where SORT routine wasn't called for default command switch. .LE;1-Mar-1985 .P Fixed problem with form feeds in output going to a file. The problem occured in AKPRINT.FOR when using the following command: .LIT $ RUN AKREPORT Account name : */SUMMARY/PRINT/BEGIN=1-JAN-1985/NOTOTAL .EL .LE;1-Apr-1985 .P Fixed problem with new AKCOUNT.TOT file being created before it should be at fiscal year end. The problem was in AKTIME.FOR. The problem can be repaired if the user users a great deal of caution. The AKCOUNT.TOT files can be editted with the EDT editor. The user should attempt the editing on copies of the files only!! The following describes the format of the AKCOUNT.TOT file. .P Each line of the AKCOUNT.TOT file describes either the beginning of a weeks worth of accounting or the detailed user records for that particular week. The detailed user record always begins with the character "^@" , (null character). All weekly header records begin with the character "" except for the last header in the file which has the character "^A". .LE;2-Apr-1985 .P Modified all files to upgrade software to work on VMS V4.x systems. The problems encountered were with the new UIC form as supplied by DISKQUOTA. The changes to AKCOUNT do not affect the file SYS$ACCOUNT:AKCOUNT.TOT at all! .P Removed support for AKCONVERT utility. .LE;14-Aug-1986 .P Created AKREPAIR facility to check, fix, and edit the AKCOUNT.TOT file. This was necessary to fix problems with the file that were created by an error in the AKCOUNT.EXE program. This error first appeared after upgrading the software to VMS version 4.x. .P Modified AKREPORT to provide online HELP facility. .P Modified AKSWITCH routine to parse the command line so the username and command switches can be intermixed. .ELS .LM 10 .RM 70 .AX Configuration file -- AKCONFIG.INC .LM 10 .LIT C---------------------------------------------------------------------------- C C VAX ACCOUNTING CONFIGURATION FILE C C written by: K. Trumbley C date: April 1984 C---------------------------------------------------------------------------- C Included in files : AKREPORT.FOR C AKTRNTIM.FOR C AKTIME.FOR C C TOTAL_REPLACEMENT_COST The cost of replacing the VAX computer C plus all peripherals as of the beginning C of the fiscal year less all discounts. C C YEARLY_MAINTENANCE The cost of all hardware and software C maintenance for the VAX computer plus C maintenance for all peripherals as C estimated from previous years, less all C discounts. C TOTAL_REPLACEMENT_COST = 434067.00 YEARLY_MAINTENANCE = 33732.00 C CHG_RATE=(TOTAL_REPLACEMENT_COST+YEARLY_MAINTENANCE)/(240.*8.) C C---------------------------------------------------------------------------- .EL .PG .LIT C C CHARGE RATES PER ITEM C --------------------- C C P_CNT_TIM_RATE PRIME CONNECT TIME $/hour C N_CNT_TIM_RATE NONPRIME CONNECT TIME $/hour C P_CPU_TIM_RATE PRIME CPU TIME $/hour C N_CPU_TIM_RATE NONPRIME CPU TIME $/hour C P_BAT_TIM_RATE PRIME BATCH TIME $/hour C N_BAT_TIM_RATE NONPRIME BATCH TIME $/hour C PRT_PAG_RATE PAGES PRINTED $/page C PRT_JOB_RATE PAGES/JOB ADJUSTMENT $/print job C VOL_MNT_RATE VOLUMES MOUNTED $/mount C BUF_IO_RATE BUFFERED I/O BLOCKS $/IO C DIR_IO_RATE DIRECT I/O BLOCKS $/IO C PAG_FLT_RATE PAGE FAULTS $/fault C DSK_BLK_RATE DISK BLOCK STORAGE $/block C P_CNT_TIM_RATE = CHG_RATE/100.0 N_CNT_TIM_RATE = CHG_RATE/1000.0 P_CPU_TIM_RATE = CHG_RATE/1.0 N_CPU_TIM_RATE = CHG_RATE/10.0 P_BAT_TIM_RATE = CHG_RATE/5.0 N_BAT_TIM_RATE = CHG_RATE/50.0 PRT_PAG_RATE = CHG_RATE/5000.0 PRT_JOB_RATE = CHG_RATE*3/5000.0 VOL_MNT_RATE = CHG_RATE/100.0 BUF_IO_RATE = CHG_RATE/1000.0 DIR_IO_RATE = CHG_RATE/1000.0 PAG_FLT_RATE = CHG_RATE/1000.0 DSK_BLK_RATE = CHG_RATE*7/100.0 C C---------------------------------------------------------------------------- C C Prime time and Non-prime time definitions C PRIME_START_HOUR=8 PRIME_START_MINUTE=0 PRIME_END_HOUR=16 PRIME_END_MINUTE=15 C C---------------------------------------------------------------------------- C C Header string definition for the various printouts C HEADER_STR='NRC Systems Laboratory -- M3' C C---------------------------------------------------------------------------- C C Define end of fiscal year C END_FISCAL_DAY=31 END_FISCAL_MONTH=3 C C---------------------------------------------------------------------------- .EL .LM 10 .RM 70 .AX SYSTARTUP.TXT File .LM 10 .LIT $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $! $! INCLUDE FILE FOR SYS$MANAGER:SYSTARTUP.COM $! VMS V4.x $! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $! $! start accounting in batch queue $! test SYS$BATCH to see if AKCOUNT job already present, $! if not, restart accounting. $! $ ASSIGN/SYSTEM/EXEC SYS$SYSROOT:[SYSMGR.ACCOUNT] SYS$ACCOUNT $ SHOW QUEUE/OUTPUT=SCRATCH.DAT SYS$BATCH $ SET_AKCOUNT=1 $ OPEN INPUT SCRATCH.DAT $BA_LOOP: $ READ/END=TEST_AKCOUNT INPUT TEST_LINE $ TEST_NAME:='F$EXTRACT(2,7,TEST_LINE) $ IF TEST_NAME .EQS. "AKCOUNT" THEN SET_AKCOUNT=0 $ GOTO BA_LOOP $TEST_AKCOUNT: $ CLOSE INPUT $ DELETE SCRATCH.DAT.* $ IF SET_AKCOUNT .EQ. 0 THEN GOTO FINISHED_TEST $ @SYS$ACCOUNT:AKCOUNT.COM RESTART $FINISHED_TEST: $! .EL .LM 10 .RM 70 .AX Report Generator Printout Examples .LM 10 .LIT DETAILED SINGLE USER LISTING ---------------------------- ---------------------------------------------------------------------- NRC Systems Laboratory -- M3 Username : SYSTEM Account : SYSTEM UIC : [ 1, 4] Record for 9-FEB-1985 to 16-FEB-1985 ---------------------------------------------------------------------- PRIME TIME NONPRIME TIME Connect time (h:m) : 35:08 Connect time (h:m) : 116:29 CPU time (sec) : 3080 CPU time (sec) : 789 BATCH time (sec) : 127 BATCH time (sec) : 9488 Disk usage (blks) : 747618 Volumes mounted : 31 Print jobs : 14 Pages printed : 516 Log count : 78 Login failures : 0 Direct I/O count : 229457 Buffered I/O count : 504825 Page fault count : 832179 Date of last login : 16-FEB-1985 ---------------------------------------------------------------------- CHARGES $ 13249.70 ---------------------------------------------------------------------- .EL .PG .LIT DETAILED SINGLE USER LISTING WITH RATE TABLE -------------------------------------------- ---------------------------------------------------------------------- NRC Systems Laboratory -- M3 Username : SYSTEM Account : SYSTEM UIC : [ 1, 4] Record for 9-FEB-1985 to 16-FEB-1985 ---------------------------------------------------------------------- PRIME TIME NONPRIME TIME Connect time (h:m) : 35:08 Connect time (h:m) : 116:29 CPU time (sec) : 3080 CPU time (sec) : 789 BATCH time (sec) : 127 BATCH time (sec) : 9488 Disk usage (blks) : 747618 Volumes mounted : 31 Print jobs : 14 Pages printed : 516 Log count : 78 Login failures : 0 Direct I/O count : 229457 Buffered I/O count : 504825 Page fault count : 832179 Date of last login : 16-FEB-1985 ---------------------------------------------------------------------- CHARGES $ 13249.70 ---------------------------------------------------------------------- BREAKDOWN OF VAX ACCOUNTING CHARGES ----------------------------------- NRC Systems Laboratory -- M3 Prime connect time rate ($ per hour) : 2.44 Nonprime connect time rate ($ per hour) : 0.24 Prime CPU time rate ($ per hour) : 243.65 Nonprime CPU time rate ($ per hour) : 24.36 Prime BATCH time rate ($ per hour) : 48.73 Nonprime BATCH time rate ($ per hour) : 4.87 Printed pages rate ($ per page) : 0.05 Print job adjustment rate ($ per job) : 0.15 Volume mount rate ($ per mount) : 2.44 Buffered I/O rate ($ per K blks) : 0.24 Direct I/O rate ($ per K blks) : 0.24 Page fault rate ($ per K flts) : 0.24 Disk block storage rate ($ per K blks) : 17.06 .EL .PG .LIT SUMMARY LISTING --------------- ACCOUNTING SUMMARY ------------------ NRC Systems Laboratory -- M3 For time period from 27-OCT-1984 to 3-NOV-1984 Username Account Diskusage Print Log Log | PRIME TIME NONPRIME TIME | CHARGES (blocks) Pages Count Fail | CONNECT CPU BATCH | CONNECT CPU BATCH | -------------------------------------------------------------------------------------------------------------------------- COURSE SYSTEM 5951 0 0 0 | 0:00 0 0 | 0:00 0 0 | 101.50 DECNET SYSTEM 175 0 0 0 | 0:00 0 0 | 0:00 0 0 | 2.98 GAMES SYSTEM 18642 3 25 5 | 2:25 1383 0 | 4:13 995 0 | 426.48 OPERATOR SYSTEM 78 0 0 0 | 0:00 0 0 | 0:00 0 0 | 1.33 SCRATCH SYSTEM 40 16 0 0 | 0:04 8 0 | 0:00 0 0 | 2.53 SYSLAB SYSTEM 66140 2 4 0 | 0:38 65 0 | 0:00 0 0 | 1133.01 SYSTEM SYSTEM 1203095 321 49 4 | 30:52 2690 95 | 292:03 363 7785 | 20931.58 -------------------------------------------------------------------------------------------------------------------------- TOTALS = 1294121 342 78 9 34:00 4146 95 296:17 1358 7785 22599.41 .EL