Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3205792
  • 博文数量: 443
  • 博客积分: 11301
  • 博客等级: 上将
  • 技术积分: 5679
  • 用 户 组: 普通用户
  • 注册时间: 2004-10-08 12:30
个人简介

欢迎加入IT云增值在线QQ交流群:342584734

文章分类

全部博文(443)

文章存档

2022年(1)

2021年(1)

2015年(2)

2014年(1)

2013年(1)

2012年(4)

2011年(19)

2010年(32)

2009年(2)

2008年(4)

2007年(31)

2006年(301)

2005年(42)

2004年(2)

分类:

2007-01-05 17:43:43

用途

运行每日记帐。

语法

/usr/sbin/acct/runacctmmdd State ] ]

描述

runacct 命令是主要的每日记帐 shell 过程。一般由 cron 守护程序启动, runacct 命令处理连接、费用、磁盘、队列系统(打印机)和为当天处理数据文件来产生二进制格式的每日报表,/var/adm/acct/nite/dayacct runacct 命令也为 prdaily 过程或记帐目的准备了摘要文件以贮备 ASCII 格式的每日报告, /var/adm/acct/sum/rprtmmdd

acctmerg 命令将 dayacct 报告添加到记帐周期的累计摘要报告, /var/adm/acct/sum/taccttacct 报告被 monacct 命令使用以产生一个月度报告, /var/adm/acct/fiscal

如果您需要重启 runacct 过程,该命令中有两个参数必须从键盘输入。日期参数 mmdd 使您能够为您想重新运行的记帐指定日期和月份。 State 参数使一个有管理权限的用户在它的任何状态下重新启动 runacct

如果发生运行时错误,runacct 命令保护活动记帐文件和摘要文件,而且它通过将描述消息写入 /var/adm/acct/nite/active 文件记录它的进度。当 runacct 过程遇到一个错误时,它给 root 用户和管理员发送电子邮件,并退出。

runacct 过程也在 /var/adm/acct/nite 目录中创建了两个临时文件 locklock1,过程使用它们来防止两个同时发生的 runacct 过程的调用。如果使用 lastdate 文件(在相同的目录中)来防止每天超过一个请求。

runacct 命令将其处理拆分为独立的、可重新启动的不同状态。在完成每一个状态时,它在 /var/adm/acct/nite/state 文件中写入了下一个状态的名称。runacct 过程以如下的顺序处理各种状态:

状态 操作
SETUP 将活动的记帐文件移入工作文件并重新启动活动文件。
WTMPFIX 验证 wtmp 文件的完整性,如果需要,更正日期变动。
CONNECT1 调用 acctcon1 命令以产生连接会话记录。
CONNECT2 将会话记录转换成总的记帐记录(tacct.h 格式)。
PROCESS 将进程记帐记录转换成总的记帐记录(tacct.h 格式)。
MERGE 合并连接并处理总记帐记录。
FEES chargefee 命令的输出转换成总的记帐记录(tacct.h 格式)并使用连接和进程的总的记帐记录将它们合并。
DISK 用连结、处理和费用的总的记帐记录合并磁盘记帐记录。
QUEUEACCT 排列队列(打印机)记帐记录,将它们转换成总的记帐记录(tacct.h 格式)并用其它的总记帐记录合并它们。
MERGETACCT 用在 /var/adm/acct/sum/tacct 报告文件中的摘要的总的记帐记录合并在 daytacct 报告文件中的每天的总的记帐记录。
CMS 在文件 /var/adm/acct/sum/cms 中生成命令总结。
USEREXIT 如果 /var/adm/siteacct shell 文件存在的话,在这点调用它进行基于站点的处理。
CLEANUP 删除临时文件并退出。

重新启动 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 组的成员。

示例

  1. 为系统资源启动每日记帐过程,增加如下的命令行到 crontab 文件,从而 runacct 命令将由 cron 守护程序自动运行:

    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 守护程序的记帐指示信息之一。

  2. 从命令行(启动 runacct 命令)为系统资源启动每日记帐管理过程,输入如下:

    nohup /usr/sbin/acct/runacct 2> \
    /var/adm/acct/nite/accterr &

    尽管最好用 cron 守护程序自动启动 runacct 过程(参见例 1),您也可以从键盘输入命令。 runacct 命令将会在后台运行(&),忽略所有的 INTERRUPT 和 QUIT 信号(nohup 命令),并将所有的标准错误输出(2>)写到 /var/adm/acct/nite/accterr 文件。

  3. 要在一个指定的日期重新启动系统记帐过程,输入类似于如下的命令:

    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  文件的尾部( >>)。

  4. 为在指定状态下的特定日期重新启动系统记帐过程,输入如下类似命令:

    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 文件的尾部(>>)。

文件

/var/adm/wtmp 登录/登出历史文件。
/var/adm/pacct* 处理记帐文件。
/var/adm/acct/nite/daytacct 磁盘磁盘使用情况记帐程序。
/var/adm/qacct 活动的队列记帐文件。
/var/adm/fee 要用户付的费用的记录。
/var/adm/acct/sum/* 命令和总的记帐摘要文件。
/var/adm/acct/nite/ptacct*.mmdd pacct 文件的连结版本。
/var/adm/acct/nite/active runacct 消息文件。
/var/adm/acct/nite/lock* 防止 runacct 同时被调用。
/var/adm/acct/nite/lastdate 包含 runacct 运行的最后日期。
/var/adm/acct/nite/statefile 包含要处理的当前状态。

相关信息

命令、 命令、 或者 acctcon2 命令、 命令、 acctprc2 或者 accton 命令、 命令和 命令。

守护程序。

子例程。

文件格式和 文件格式。

阅读(3600) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~