翻译自info ac,水平有限,仅供参考。。。
acct是一个记录用户连接时间和进程执行数据的工具集。它包括:
ac:统计登录账户信息
accton:开启或关闭进程记录
last:显示登录的用户
lastcomm:显示使用过的命令
sa:统计进程的记录
dump-acct:以human-readable形式打印acct/pacct文件
dump-utmp:以human-readable形式打印utmp文件
acct文件一般位于/var/log/pacct,wtmp文件一般位于/var/log/wtmp。可通过查看任意命令的"--help"参数来查看文件位置。登录统计文件为wtmp,进程统计文件为acct,savacct,usracct
1、ac:打印用户连接时间的数据。ac是基于wtmp文件打印出连接的时间(以小时为单位)。
-d:打印出每一天的连接时间
-p:打印出不同用户连接的时间
--reboots:包含reboot用户连接的时间(reboot用户连接的时间为系统启动到关闭的时间)
注:ac查看连接时间有个疑问,即ac是如何计算连接时间的。在输出中可以看到40.50等超出24的数值,不知代表的是什么意思。
2、accton:开启或关闭进程记录
accton on|off|ACCOUNTINGFILE
3、last:通过查看wtmp文件打印用户连接的信息。last后面可以接很多东西,例如:last root console会打印root连接的信息和从console连接的信息(或的关系)
选项
-y:打印年
-i:打印ip地址而不是域名
4、lastcomm:打印之前执行命令的信息,若不加任何参数,则打印‘acct’文件中的所有命令。lastcomm后面可以接命令名称,用户名称,终端名称,只有包含这些的条目会被显示。例如‘lastcomm a.out tty0’,则会打印在命令名称,用户名称,终端名称中包含‘a.out‘或‘tty0‘的任何条目。如果想打印用户root在终端tty0执行a.out命令的条目,则输入:lastcomm --strict-match a.out root tty0,参数的顺序不是很重要。
lastcomm打印的条目包括产生进程的命令名称,标志(S:由超级用户执行的命令;F:在fork后执行的命令;因为核心文件的产生而终止的命令;X:由SIGTERM终止的命令),用户名称,进程退出的时间。
选项:
--user NAME:某用户的记录列表
--command NAME:某命令的记录列表
--tty NAME:某终端的记录列表
5、sa:sa统计记录在“acct”文件中的执行的命令的信息。除此以外,它浓缩这些数据进‘savacct‘文件。这个文件包含命令调用的次数和资源的使用情况。也可以以每个用户为基础进行统计,sa会保存这些信息到‘usracct‘文件中。
sa命令如果没有任何参数,则会打印acct文件的所有命令信息。如果命令名称中含有不可打印的字符,或只调用过一次,sa会把它们归到‘***other‘组中。总命令数会以空白命令名称显示。
命令输出中的字段:
‘cpu‘:系统和用户使用cpu的时间
‘re‘:"real time" in cpu seconds
‘avio‘:每条命令的I/O操作的平均数。
‘tio‘:I/O操作的总数
‘k‘:cpu-time averaged core usage,in 1k units
选项:
-a:显示所有命令,而不是以‘**other‘代替
-d:以‘avio‘顺序排序显示。
6、dump-acct:以human-readable的形式打印acct文件。
输出格式,各项之间以‘|’分隔:
命令的名称
acct文件的版本
用户时间
系统时间
运行时间
用户id
组id
内存使用
传给I/O的字符数
进程id
父进程id