runacct(ADM)


runacct -- run daily accounting

Syntax

/usr/lib/acct/runacct [ mmdd [ state ] ]

Description

runacct is the main daily accounting shell procedure. It is normally initiated via cron(C). runacct processes connect, fee, disk, and process accounting files. It also prepares summary files for prdaily or billing purposes.

runacct takes care not to damage active accounting files or summary files in the event of errors. It records its progress by writing descriptive diagnostic messages into active. When an error is detected, runacct sends mail(C) to root and adm; runacct then terminates.

runacct uses a series of lock files to protect against re-invocation. The files lock and lock1 are used to prevent simultaneous invocation, and lastdate is used to prevent more than one invocation per day.

runacct breaks its processing into separate, restartable ``states'' using statefile to remember the last state completed. It accomplishes this by writing the state name into statefile. runacct then looks in statefile to see what it has done and to determine what to process next. States are executed in the following order:


SETUP
Move active accounting files into working files.

WTMPFIX
Verify integrity of wtmp file, correcting date changes if necessary.

CONNECT1
Produce connect session records in intermediate connect time format.

CONNECT2
Convert intermediate connect time format records into total accounting format records.

PROCESS
Convert process accounting records into total accounting format records.

MERGE
Merge the connect and process accounting records.

FEES
Convert output of chargefee into total accounting format records and merge with connect and process accounting records.

DISK
Merge disk accounting records with connect, process, and fee accounting records.

MERGETACCT
Merge the daily total accounting records in daytacct with the summary total accounting records in /usr/adm/acct/sum/tacct.

CMS
Produce command summaries.

USEREXIT
Any installation-dependent accounting programs can be included here.

CLEANUP
Clean up temporary files and exit.

To restart runacct after a failure, first check the active file for diagnostics, then fix any corrupted data files such as pacct or wtmp. The lock files and lastdate file must be removed before runacct can be restarted. The argument mmdd is necessary if runacct is being restarted, and specifies the month and day for which runacct will rerun the accounting. The entry point for processing is based on the contents of statefile; to override this, include the desired state on the command line to designate where processing should begin.

Examples

To start runacct:

nohup runacct 2> /usr/adm/acct/nite/fd2log &

To restart runacct:

nohup runacct 0601 2>> /usr/adm/acct/nite/fd2log &

To restart runacct at a specific state:

nohup runacct 0601 MERGE 2>> /usr/adm/acct/nite/fd2log &

Limitations

Normally, it is not a good idea to restart runacct in the SETUP state. Run SETUP manually and restart via:

runacct mmdd WTMPFIX

If runacct failed in the PROCESS state, remove the last ptacct file because it will not be complete.

Files

/etc/wtmp
/usr/adm/pacct*
/usr/adm/acct/nite/active
/usr/adm/acct/nite/daytacct
/usr/adm/acct/nite/lock
/usr/adm/acct/nite/lock1
/usr/adm/acct/nite/lastdate
/usr/adm/acct/nite/statefile
/usr/adm/acct/nite/ptacct*.mmdd

See also

acct(ADM), acctcms(ADM), acctcom(ADM), acctcon(ADM), acct(FP), acctmerg(ADM), acctprc(ADM), acct(S-osr5), acctsh(ADM), cron(C), fwtmp(ADM), mail(C), utmp(F)

Standards conformance

runacct is conformant with AT&T SVID Issue 2.
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 -- 03 June 2005