JavaScript is required to for searching.
跳过导航链接
退出打印视图
系统管理指南:高级管理     Oracle Solaris 10 1/13 Information Library (简体中文)
search filter icon
search icon

文档信息

关于本书

1.  管理终端和调制解调器(概述)

2.  设置终端和调制解调器(任务)

3.  使用服务访问工具管理串行端口(任务)

4.  管理系统资源(概述)

5.  显示和更改系统信息(任务)

6.  管理磁盘使用(任务)

7.  管理 UFS 配额(任务)

8.  调度系统任务(任务)

9.  管理系统记帐(任务)

系统记帐方面的新增功能

Oracle Solaris 进程记帐和统计信息改进

什么是系统记帐?

系统记帐的工作原理

系统记帐组件

连接记帐

进程记帐

磁盘记帐

费用计算

每日记帐的工作原理

系统关闭时执行的操作

系统记帐(任务列表)

设置系统记帐

如何设置系统记帐

对用户计费

如何对用户计费

维护记帐信息

修复损坏的文件并更正 wtmpx 错误

如何修复损坏的 wtmpx 文件

更正 tacct 错误

如何修复 tacct 错误

重新启动 runacct 脚本

如何重新启动 runacct 脚本

停止和禁用系统记帐

如何暂时停止系统记帐

如何永久禁用系统记帐

10.  系统记帐(参考)

11.  管理系统性能(概述)

12.  管理系统进程(任务)

13.  监视系统性能(任务)

14.  软件问题疑难解答(概述)

15.  管理系统消息

16.  管理核心文件(任务)

17.  管理系统故障转储信息(任务)

18.  各种软件问题的故障排除(任务)

19.  文件访问问题故障排除(任务)

20.  解决 UFS 文件系统不一致问题(任务)

21.  软件包问题故障排除(任务)

索引

维护记帐信息

本节介绍如何修复损坏的系统记帐文件以及如何重新启动 runacct 脚本。

修复损坏的文件并更正 wtmpx 错误

遗憾的是,系统记帐并不十分安全。有时候,文件会损坏或丢失。有些文件可以忽略,也可以从备份中恢复。但是,有些文件则必须修复,才能维护系统记帐的完整性。

wtmpx 文件可能会引发每日系统记帐操作中的大多数问题。手动更改日期并且系统处于多用户模式时,会向 /var/adm/wtmpx 文件中写入一组日期更改记录。wtmpfix 实用程序旨在出现日期更改时调整 wtmp 记录中的时间戳。但是,部分日期更改和重新引导的组合会跳过 wtmpfix 实用程序并导致 acctcon 程序失败。

如何修复损坏的 wtmpx 文件

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"

  2. 转到 /var/adm 目录。
  3. wtmpx 文件从二进制格式转换为 ASCII 格式。
    # /usr/lib/acct/fwtmp < wtmpx > wtmpx.ascii 
  4. 编辑 wtmpx.ascii 文件以删除损坏的记录。
  5. wtmpx.ascii 文件转换回二进制文件。
    # /usr/lib/acct/fwtmp -ic < wtmpx.ascii > wtmpx

    有关更多信息,请参见 fwtmp(1M) 手册页。

更正 tacct 错误

如果要向用户收取系统资源费用,则 /var/adm/acct/sum/tacct 文件的完整性极为重要。有时候,会出现异常的 tacct 记录,其中包括负数、重复的用户 ID 或用户 ID 65535。首先,使用 prtacct 脚本列显 /var/adm/acct/sum/tacctprev 文件,以检查该文件。如果内容没有问题,则修补最新的 /var/adm/acct/sum/tacct MMDD 文件。然后,重新创建 /var/adm/acct/sum/tacct 文件。以下步骤概括了一个简单的修补过程。

如何修复 tacct 错误

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有特权的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的"配置 RBAC(任务列表)"

  2. 转到 /var/adm/acct/sum 目录。
  3. tacctMMDD 文件从二进制格式转换为 ASCII 格式。
    # /usr/lib/acct/acctmerg -v < tacctMMDD > xtacct

    MMDD 是一对表示月份和日期的两位数。

  4. 编辑 xtacct 文件,删除损坏的记录并将重复记录写入另一个文件。
  5. xtacct 文件从 ASCII 格式转换为二进制格式。
    # /usr/lib/acct/acctmerg -i < xtacct > tacctMMDD
  6. 将文件 tacctprevtacct.MMDD 合并到 tacct 文件中。
    # /usr/lib/acct/acctmerg < tacctprev tacctMMDD > tacct

重新启动 runacct 脚本

runacct 脚本失败的原因可能有多种。

以下是最常见的原因:

如果存在 active.MMDD 文件,请先检查该文件中是否有错误消息。如果存在 activelock 文件,请检查 fd2log 文件中是否有任何相关消息。

如果不带任何参数运行 runacct 脚本,则该脚本会假定这一次调用是当天的第一次调用。如果 runacct 脚本正在重新启动并指定 runacct 脚本重新运行记帐的月份和日期,则参数 MMDD 是必需的。进行处理的入口点基于 statefile 文件的内容。要覆盖 statefile 文件,请在命令行中包括所需的状态。有关可用状态的说明,请参见 runacct(1M) 手册页。


注意

注意 - 手动运行 runacct 程序时,请确保以用户身份 adm 运行该程序。


如何重新启动 runacct 脚本

  1. 转到 /var/adm/acct/nite 目录。
    $ cd /var/adm/acct/nite
  2. 删除 lastdate 文件和所有 lock* 文件(如果有)。
    $ rm lastdate lock*

    lastdate 文件包含上次运行 runacct 程序的日期。在下一步中重新启动 runacct 脚本将重新创建此文件。

  3. 重新启动 runacct 脚本。
    $ /usr/lib/acct/runacct MMDD [state] 2> /var/adm/acct/nite/fd2log &
    MMDD

    由两位数指定的月份和日期。

    state

    指定 runacct 脚本处理开始的状态或起始点。