Man page of runacct
Section: Maintenance Commands (8)
Return to Main Contents
runacct - Runs daily accounting
/usr/sbin/acct/runacct [mmdd] [State ...]
The runacct command is the daily accounting shell procedure.
This shell procedure is normally invoked from the cron daemon
to process connection, fee, disk
usage, queuing (printer), and process accounting database files for the
current day. The runacct shell procedure produces a
/var/adm/acct/nite/dayacct binary daily accounting file and also
produces summary files, which the prdaily shell procedure uses to
generate ASCII daily file /var/adm/acct/sum/rprtmmdd or to
generate files used for billing for the use of various system resources.
The /var/adm/acct/nite/dayacct binary daily accounting file is used by
the acctmerg command.
The acctmerg command adds records from the dayacct file to the
/var/adm/acct/sumtacct file. The /var/adm/acct/sumtacct file is a
cumulative summary of system resources used during the accounting period.
The sumtacct file is used by the monacct command to produce the
monthly accounting summary file, /var/adm/acct/fiscal.
The runacct command has two parameters that you may enter from
the keyboard whenever you must restart the runacct shell procedure.
The date parameter, mmdd, is used to specify the day and month for
which you want to rerun the accounting shell procedure. The State
parameter is used to restart the runacct shell procedure from any of
its 13 states. Recovery from a run failure and the runacct shell
procedure restart is described under the Restarting Runacct
heading on the next page.
The runacct command protects active accounting and summary files
whenever a run-time error occurs. During execution, the state-to-state
progress of the runacct shell process is recorded by writing
descriptive messages to the /var/adm/acct/nite/active file.
Whenever the runacct shell process detects a run-time error, a
mail message is sent to the superuser (root) and to the user
named adm when environment variable MAILCOM is set to mail
root adm. After writing the mail message the runacct shell procedure
The runacct shell procedure also creates the temporary file
named lock in subdirectory /var/adm/acct/nite. This file
is used to prevent simultaneous calls to the runacct shell
procedure. The runacct shell procedure also uses the lastdate
file, in the same subdirectory, to prevent more than one invocation of
the runacct command per day.
The runacct States
The runacct shell procedure is processed in 13 separate
restartable states. When the runacct process completes each
state, the name of the next state to undergo execution is written
to the /var/adm/acct/nite/statefile file. The runacct
procedure processes the various states named in the leftmost column below,
in the order given.
Moves the active accounting files to working files and restarts the active
Verifies the integrity of the /var/adm/wtmp file and corrects
date changes when necessary.
Calls the acctcon1 command to write connect session records.
Converts connect session records from the /var/adm/wtmp file to
total accounting records in total format defined by tacct
structure members in the private tacct.h header file.
Converts process accounting records from the /var/adm/pacct* file(s)
into total accounting records (see CONNECT2 above).
Merges the connect and process total accounting records.
Converts the output obtained with the chargefee command
into total accounting records (see CONNECT2 above) and merges
them with other total accounting records.
Merges disk accounting records with connect, process, and fee total
Sorts queue (printer) accounting records, converts them into total
accounting records (see CONNECT2 above), and merges them with other
total accounting records.
Merges the daily total accounting records in the
/var/adm/acct/nite/dayacct file with summary total
accounting records in the /var/adm/acct/sum/tacct file.
Produces command summaries in the file /var/adm/acct/sum/cms.
When the shell procedure /var/adm/siteacct exists, and the
runacct shell procedure enters this state, the
/var/adm/siteacct is called to perform site-dependent account
Deletes all temporary files and exits.
To restart the runacct shell process after it fails, do the following:
Check the /var/adm/acct/nite/active file for diagnostic messages.
Repair records in any damaged database files, such as /var/adm/pacct
Remove the /var/adm/acct/nite/lock and /var/adm/acct/nite/lastdate
Before restarting the runacct shell procedure, you must specify
the mmdd parameter of the runacct command. This parameter
specifies the month and day for which the runacct command is to
rerun the accounting shell process. The runacct shell procedure
determines the entry point for processing by reading the
/var/adm/acct/nite/statefile file. To override this default
action, specify a state listed above on the runacct command line.
It is not a good idea to restart the runacct command in the
SETUP state. Instead, perform set-up actions manually and restart
accounting in the WTMPFIX state by entering the following
runacct mmdd WTMPFIX
Should the runacct process fail during its PROCESS state,
remove the last /var/adm/acct/nite/ptacct*.mmdd file before
restarting the runacct shell process because the file does not complete
until the next state is entered.
To start daily accounting procedures for the use of various system resources,
add the following command line to a crontabs file so that the
runacct shell procedure is automatically called by the cron
0 4 * * 1-6 /usr/sbin/acct/runacct 2 > /var/adm/acct/nite/accterr
This example shows the instructions that the cron daemon reads
and then executes. The runacct shell procedure runs at 4:00 a.m. (0
4) every Monday through Saturday (1-6) and redirects errors from the
standard error output (2 >) to the /var/adm/acct/nite/accterr
file. This command typifies accounting instructions normally passed
to the cron daemon from the runacct shell procedure. (See
the System Administration.)
To start daily accounting procedures for system
resources from the command line (start the runacct command),
nohup /usr/sbin/acct/runacct 2> /var/adm/acct/nite/accterr&
Although it is preferable to have the cron daemon start the
runacct procedure automatically (see the first example), you may enter
the command from the keyboard. The runacct command will run in
the background, ignoring all INTERRUPT and QUIT
signals (nohup), and write all standard error output (2>) to the
To restart the system accounting procedures for
a specific date, enter a command similar to the following:
nohup /usr/sbin/acct/runacct 0601 2>> /var/adm/acct/nite/accterr&
In this example, the runacct command is executed on the first
day of June (0601). The runacct process reads the
/var/adm/acct/nite/statefile file to find the state from which
to start. The runacct process runs in the background and
ignores all INTERRUPT and QUIT signals (nohup).
The standard error output (2) is appended (>>) to the end
of the file named /var/adm/acct/nite/accterr.
Specifies the command path
The active login/logout database file.
The active process accounting database file.
The active disk-usage accounting database file.
The active queue (printer) accounting file.
The file containing records of fees charged to users.
The command and total accounting summary files.
The concatenated version of the pacct files.
The runacct error message file.
Prevents more than one invocation of the runacct shell procedure.
Contains the last date the runacct shell procedure was run.
Contains the next state to process.
A shell procedure containing site-dependent accounting commands.
Accounting header file that defines formats for writing accounting files.
Commands: acct(8), acctcms(8), acctcom(8), acctcon(8), acctmerg(8), acctprc(8), fwtmp(8)
- The runacct States
- Restarting runacct
- RELATED INFORMATION
This document was created by
using the manual pages.
Time: 02:40:36 GMT, October 02, 2010