/usr/sbin/acct/runacct [ mmdd [ State ] ]
runacct 命令是主要的每日记帐 shell 过程。一般由 cron 守护程序启动, runacct 命令处理连接、费用、磁盘、队列系统(打印机)和为当天处理数据文件来产生二进制格式的每日报表,/var/adm/acct/nite/dayacct 。runacct 命令也为 prdaily 过程或记帐目的准备了摘要文件以贮备 ASCII 格式的每日报告, /var/adm/acct/sum/rprtmmdd 。
acctmerg 命令将 dayacct 报告添加到记帐周期的累计摘要报告, /var/adm/acct/sum/tacct。tacct 报告被 monacct 命令使用以 产生一个月度报告, /var/adm/acct/fiscal。
如果您需要重启 runacct 过程,该命令中有两个参数必须从键盘输入。日期参数 mmdd 使您能够为您想重新运行的记帐指定日期和月份。 State 参数使一个有管理权限的用户在它的任何状态下重新启动 runacct。有关重启 runacct 过程和错误恢复的更多信息,请参阅"重新启动 runacct 过程"。
如果发生运行时错误,runacct 命令保护活动记帐文件和摘要文件,而且它通过将描述消息写入 /var/adm/acct/nite/active 文件记录它的进度。当 runacct 过程遇到一个错误时,它给 root 用户和管理员发送电子邮件,并退出。
runacct 过程也在 /var/adm/acct/nite 目录中创建了两个 临时文件 lock 和 lock1,过程使用它们来防止两个同时发生的 runacct 过程的调用。 如果使用 lastdate 文件(在相同的目录中)来防止每天超过一个请求。
runacct 命令将其处理拆分为独立的、可重新启动的不同状态。在完成每一个状态时,它在 /var/adm/acct/nite/state 文件中写入了下一个状态的名称。runacct 过程以如下的顺序处理各种状态:
要在失败后重新启动 runacct 命令, 首先为诊断消息检查 /var/adm/acct/nite/active 文件,然后修正任何被破坏了的数据文件,如 pacct 或者 wtmp。在重新启动 runacct 命令之前,除去 lock 文件和 lastdate 文件(它们都在 /var/adm/acct/nite 目录中)。如果您重新启动 runacct 命令,必须指定 mmdd 参数。 它为 runacct 命令重新运行记帐指定月份和日期。 runacct 过程通过读取 /var/adm/acct/nite/statefile 文件为处理确定了入口点。为了覆盖这个缺省的操作,在 runacct 命令行上指定希望的 state 。
在 SETUP 状态下重启动 runacct 命令通常不是一个好主意。 替代的方法为,手动执行设置操作并在 WTMPFIX 状态下重新启动记帐,如下:
/usr/lib/acct/runacct mmdd WTMPFIX
如果 runacct 命令在 PROCESS 状态下失败,除去最后的 ptacct 文件,因为它会不完整。
访问控制:这个命令应该仅将执行(x)的访问权授予 adm 组的成员。
0 4 * * 1-6 /usr/sbin/acct/runacct 2> \ /var/adm/acct/nite/accterr
这个示例显示了 cron 守护程序会读取和执行的指示信息。runacct 命令会在早上 4 点运行。(04) 每个星期一到星期六(1-6)并 将所有的标准错误输出(2>)写到 /var/adm/acct/nite/accterr 文件。这个命令仅仅是通常提供给 cron 守护程序的记帐指示信息之一。参阅在《AIX 5L V5.2 系统管理指南:操作系统与设备》中的 『建立一个记帐系统』,以获得有关典型的 cron 记帐条目的更多信息。
nohup /usr/sbin/acct/runacct 2> \ /var/adm/acct/nite/accterr &
尽管最好用 cron 守护程序自动启动 runacct 过程(参见例 1),您也可以从键盘输入命令。 runacct 命令将会在后台运行(&),忽略所有的 INTERRUPT 和 QUIT 信号(nohup 命令),并将所有的标准错误输出(2>)写到 /var/adm/acct/nite/accterr 文件。
nohup /usr/sbin/acct/runacct 0601 2>> \ /var/adm/acct/nite/accterr &
这个命令在六月一日(0601)重新启动 runacct。 runacct 命令读取文件 /var/adm/acct/nite/statefile 以查找开始状态。runacct 命令将在(& )后台运行,它忽略了 所有的 INTERRUPT 和 QUIT 信号(nohup)。标准错误输出 (2)被添加到了 /var/adm/acct/nite/accterr 文件的尾部( >>)。
nohup /usr/sbin/acct/runacct 0601 MERGE 2>> \ /var/adm/acct/nite/accterr &
这个示例在六月一日(0601)重新启动 runacct 命令,以 MERGE 状态开始。runacct 命令 将在(&)后台运行,忽略所有的 INTERRUPT 和 QUIT 信号(nohup 命令)。标准错误输出(2)被添加到了 /var/adm/acct/nite/accterr 文件的尾部(>>)。
acctcms 命令、 acctcom 命令、 acctcon1 或者 acctcon2 命令、acctmerg 命令、 acctprc1、 acctprc2 或者 accton 命令、 crontab 命令和 fwtmp 命令。
cron 守护程序。
acct 子例程。
acct 文件格式和 utmp, wtmp, failedlogin 文件格式。
有关记帐系统(Accounting System)、每天和每月报告的准备和记帐文件的更多信息,请参阅在 AIX 5L Version 5.2 System Management Concepts: Operating System and Devices 中的记帐概述 。
《AIX 5L V5.2 系统管理指南:操作系统与设备》中的『建立一个记帐系统』描述了您建立一个记帐系统时须采取 的步骤。
参阅 《AIX 5L V5.2 系统管理指南:操作系统与设备》中的『记帐命令』以获取有关能自动运行或从键盘输入的记帐命令列表的更多信息。