使用 psacct 或 acct 工具监控 Linux 用户性能

yanding 2023-07-20 620

psacct 或 acct 都是用于监视 Linux 系统上用户活动的开源工具。这些工具在后台运行,并监视每个用户在您的计算机上的活动以及他们正在使用的资源。


我个人在我们公司使用过这些工具,我们有一个开发团队,我们的开发人员一直在服务器上工作。因此,这些是最值得关注的应用程序。


这些程序提供了一种很好的方法来监视用户正在做什么、正在执行什么命令、正在使用多少资源以及用户在系统上工作了多长时间。另一个有用的事情是,它使 Apache、MySQL、FTP、SSH 等服务器上的所有资源都可供用户使用。


[您可能还喜欢:如何监控系统用户执行的实时 Linux 命令


我认为对于任何想要监视服务器/系统上的用户活动的 Linux/Unix 系统管理员来说,这是最必要的工具之一。



psacct 或 acct 包提供了多种用于监视应用程序活动的功能。


ac 命令以小时为单位打印用户登录/注销统计信息(连接时间)。

lastcomm 命令打印先前用户命令的详细信息。

accton 命令用于启用/禁用记帐处理。

sa 命令总结了先前执行的命令的数据。

last 和lastb 命令显示最后登录用户的名称。

在 Linux 中安装 psacct 或 acct 软件包

psacct 和 acct 都是兼容的软件包,几乎没有什么区别,但仅限于基于 rpm 的发行版,如 RHEL、CentOS 和 Fedora psacct 软件包适用于 RHEL、CentOS 和 Fedora 等发行版,而 acct 软件包适用于 Ubuntu、德班,. 和 Linux Mint。


要在基于 rpm 的发行版下安装 psacct 软件包,请运行以下 yum 命令。


# 百胜安装 psacct

在 Ubuntu/Debian/Linux Mint 下使用 apt 命令配置 acct 包。


$ sudo apt install acct

在其他 Linux 发行版上,您可以如图所示进行安装。


$ sudo apk add psacct [在Alpine Linux上]

$ sudo pacman -S acct [在Arch Linux上]

$ sudo zypper install acct [在OpenSUSE上]    

默认情况下,psacct 服务处于禁用状态,您必须在基于 RHEL 的发行版下手动启动它。使用以下命令检查服务的状态。


$ sudo systemctl 状态 psacct

您会看到状态显示为已禁用,因此让我们使用以下命令手动开始,这将创建一个 /var/account/pacct 文件。


$ sudo systemctl 启动 psacct

$ sudo systemctl 启用 psacct

$ sudo systemctl 状态 psacct


Ubuntu、Debian、Mint服务自动启动时,无需重启。


显示用户连接时间的统计信息

不指定任何参数的 ac 命令将显示当前 wtmp 文件中用户登录/注销的所有连接时间统计信息(以小时为单位)。


# 和


总计 11299.15


显示每日 Linux 用户统计信息


使用命令“ac -d”将打印每天的总访问时间(以小时为单位)。


# 和-d


6月25日总计0.19

10 月 13 日总计 14.45

10 月 27 日总计 672.00

10 月 28 日总计 15.82

11 月 3 日总计 4.29

11 月 5 日总计 10.13

12 月 7 日总计 14.04

12 月 10 日总计 23.60

12 月 27 日总计 808.93

1 月 3 日总计 12.31

3月3日总计1438.67

圣诞节22总计6767.81

今日总计 1517.09


显示所有Linux用户的总登录时间

使用“ac -p”命令将打印每个 Linux 用户的总登录时间(以小时为单位)。


# 和 -p


洛基Linux 425.61

702.29

根10171.54

总计 11299.44


显示 Linux 用户登录时间

要获取用户“howtoing”花费的总记账时间(以小时为单位),请使用类似命令。


# 和 howtoing

总计 702.29

显示用户登录的日期时间

以下命令将打印用户“howtoing”的每日总登录时间(以小时为单位)。


# 和 -d howtoing

10 月 11 日总计 8.01

10 月 12 日总计 24:00

10 月 15 日总计 70.50

10 月 16 日总计 23.57

10 月 17 日总计 24:00

10 月 18 日总计 18.70

11 月 20 日总计 0.18

打印用户执行的所有Linux命令

“sa”命令用于打印用户生成的命令的摘要。


# 的

       2 9.86re 0.00cp 2466k sshd*

       8 1.05re 0.00cp 1064k 人

       2 10.08re 0.00cp 2562k sshd

      12 0.00re 0.00cp 1298k psacct

       2 0.00re 0.00cp 1575k 特罗夫

      14 0.00re 0.00cp 503k 交流

      10 0.00re 0.00cp 1264k psacct*

      10 0.00re 0.00cp 466k 控制台类型

       9 0.00re 0.00cp 509k at

       8 0.02re 0.00cp 769k udisks-helper-a

       6 0.00re 0.00cp 1057k 触摸

       6 0.00re 0.00cp 592k gzip

       6 0.00re 0.00cp 465k accton

       4 1.05re 0.00cp 1264k sh*

       4 0.00re 0.00cp 1264k nroff*

       2 1.05re 0.00cp 1264k sh

       2 1.05re 0.00cp 1120k 以下

       2 0.00re 0.00cp 1346k groff

       2 0.00re 0.00cp 1383k 糟糕

       2 0.00re 0.00cp 1053k mktemp

       2 0.00re 0.00cp 1030k iconv

       2 0.00re 0.00cp 1023k rm

       2 0.00re 0.00cp 1020k 猫

       2 0.00re 0.00cp 1018k 语言环境

       2 0.00re 0.00cp 802k gtbl

上述命令的输出说明:


9.86re 是按照挂钟分钟计算的“实时”

0.01cp 是系统/用户时间的总和(以 cpu 分钟为单位)

2466k 是 cpu 时间平均核心使用率,即 1k 单位

sshd 命令名称

打印 Linux 用户配置文件

要检索单个数据,请使用 -u 选项。


#sa-u

根 0.00 cpu 465k 内存 accton

根 0.00 cpu 1057k 内存触摸

根 0.00 cpu 1298k 内存 psacct

root 0.00 cpu 466k mem 控制台类型

根 0.00 cpu 1264k 内存 psacct *

根 0.00 cpu 1298k 内存 psacct

root 0.00 cpu 466k mem 控制台类型

根 0.00 cpu 1264k 内存 psacct *

根 0.00 cpu 1298k 内存 psacct

root 0.00 cpu 466k mem 控制台类型

根 0.00 cpu 1264k 内存 psacct *

根 0.00 cpu 465k 内存 accton

根 0.00 cpu 1057k 内存触摸

打印 Linux 进程计数

此命令打印进程总数和 CPU 分钟数。如果您看到这些数字继续上升,那么是时候检查一下系统中发生的情况了。


# 萨-米

sshd 2 9.86re 0.00cp 2466k

根 127 14.29re 0.00cp 909k

打印并按百分比排序

“sa -c”命令显示最大用户百分比。


# 在-c中

132 100.00% 24.16re 100.00% 0.01cp 100.00% 923k

       2 1.52% 9.86re 40.83% 0.00cp 53.33% 2466k sshd*

       8 6.06% 1.05re 4.34% 0.00cp 20.00% 1064k 人

       2 1.52% 10.08re 41.73% 0.00cp 13.33% 2562k sshd

      12 9.09% 0.00re 0.01% 0.00cp 6.67% 1298k psacct

       2 1.52% 0.00re 0.00% 0.00cp 6.67% 1575k troff

      18 13.64% 0.00re 0.00% 0.00cp 0.00% 509k in

      14 10.61% 0.00re 0.00% 0.00cp 0.00% 503k 交流

      10 7.58% 0.00re 0.00% 0.00cp 0.00% 1264k psacct*

      10 7.58% 0.00re 0.00% 0.00cp 0.00% 466k 控制台类型

       8 6.06% 0.02re 0.07% 0.00cp 0.00% 769k udisks-helper-a

       6 4.55% 0.00re 0.00% 0.00cp 0.00% 1057k 触摸

       6 4.55% 0.00re 0.00% 0.00cp 0.00% 592k gzip

       6 4.55% 0.00re 0.00% 0.00cp 0.00% 465k accton

       4 3.03% 1.05re 4.34% 0.00cp 0.00% 1264k sh*

       4 3.03% 0.00re 0.00% 0.00cp 0.00% 1264k nroff*

       2 1.52% 1.05re 4.34% 0.00cp 0.00% 1264k sh

       2 1.52% 1.05re 4.34% 0.00cp 0.00% 1120k 以下

       2 1.52% 0.00re 0.00% 0.00cp 0.00% 1346k groff

       2 1.52% 0.00re 0.00% 0.00cp 0.00% 1383k 粗略

       2 1.52% 0.00re 0.00% 0.00cp 0.00% 1053k mktemp

列出最后的用户命令


“latcomm”命令用于搜索并显示以前创建的用户命令信息。您还可以搜索单个用户名中的命令。例如,我们有用户命令(howtoing)。


#lastcomm howtoing

su howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

bash F howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

id howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

grep howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

grep howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

bash F howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

dircolors howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

bash F howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

tput howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

tty howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

bash F howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

id howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

bash F howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

id howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

在日志中查找命令

借助lastcomm命令,您可以单独查看每个命令的用法。


# 最后通讯 ls

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

ls howtoing pts/0 0.00 秒 2 月 13 日星期三 15:56

有关更多信息和用法,请参阅这些工具的手册页。

言鼎科技

The End