linux使用psacct或acct工具监控用户活动

2022-06-02 15:42:58 浏览数 (1)

psacct 或者 acct两者都是用于监控系统上用户活动的开源应用程序。这些应用程序在后台运行并跟踪系统上每个用户的活动以及消耗的资源。

psacct 或者 acct 包提供了几个用于监控流程活动的功能。

  1. ac 命令以小时为单位打印用户登录/注销(连接时间)的统计信息。
  2. lastcomm command 打印用户先前执行的命令的信息。
  3. accton 命令用于打开/关闭accounting过程。
  4. sa 命令汇总了以前执行的命令的信息。
  5. lastlastb 命令显示上次登录用户的列表。

安装 psacct 或 acct 包

psacct 或者 acct 两者都是类似的包,它们之间没有太大区别,但是 psacct 包仅适用于基于 rpm 的发行版,例如 RHEL, CentOSFedora, 然而 acct 可用于发行版的软件包,例如 Ubuntu, DebianLinux Mint.

安装 psacct 基于 rpm 的发行版下的包发出以下内容 yum 命令。

代码语言:javascript复制
# yum install psacct -y

安装 acct 包使用 apt-get 命令下 Ubuntu / Debian / Linux Mint.

代码语言:javascript复制
$ sudo apt-get install acct

OR

# apt-get install acct
启动 psacct 或 acct 服务

默认情况下 psacct 服务处于禁用模式,你需要在下手动启动它 RHEL/CentOS/Fedora系统。使用以下命令检查服务状态。

代码语言:javascript复制
# /etc/init.d/psacct status
Process accounting is disabled.

你会看到状态显示为禁用,因此让我们使用以下两个命令手动启动它。这两个命令将创建一个/var/account/pacct 文件并启动服务。

代码语言:javascript复制
# chkconfig psacct on
# /etc/init.d/psacct start
Starting process accounting:                               [  OK  ]

启动服务后,再次检查状态,你将获得如下图所示的状态。

代码语言:javascript复制
# /etc/init.d/psacct status
Process accounting is enabled.

在下面 Ubuntu, DebianMint 服务是自动启动的,你不需要再次启动它。

显示用户连接时间统计

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

代码语言:javascript复制
# ac
代码语言:javascript复制
total     1814.03
显示用户每日统计数据

使用命令ac -d 将按天打印出以小时为单位的总登录时间。

代码语言:javascript复制
# ac -d
代码语言:javascript复制
Sep 17  total        5.23
Sep 18  total       15.20
Sep 24  total        3.21
Sep 25  total        2.27
Sep 26  total        2.64
Sep 27  total        6.19
Oct  1  total        6.41
Oct  3  total        2.42
Oct  4  total        2.52
Oct  5  total        6.11
Oct  8  total       12.98
Oct  9  total       22.65
Oct 11  total       16.18
显示每个用户的时间总计

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

代码语言:javascript复制
# ac -p
代码语言:javascript复制
root                              1645.18
rumenz                            168.96
total     1814.14
显示个人用户时间

获取用户的总登录统计时间rumenz以小时为单位,使用命令作为。

代码语言:javascript复制
# ac rumenz
代码语言:javascript复制
 total      168.96
显示用户的每日登录时间

以下命令将打印用户的每日总登录时间rumenz以小时为单位。

代码语言:javascript复制
# ac -d rumenz
代码语言:javascript复制
Oct 11  total        8.01
Oct 12  total       24.00
Oct 15  total       70.50
Oct 16  total       23.57
Oct 17  total       24.00
Oct 18  total       18.70
Nov 20  total        0.18
打印所有帐户活动信息

sa 命令用于打印用户执行的命令的摘要。

代码语言:javascript复制
# sa
代码语言:javascript复制
 2       9.86re       0.00cp     2466k   sshd*
 8       1.05re       0.00cp     1064k   man
 2      10.08re       0.00cp     2562k   sshd
12       0.00re       0.00cp     1298k   psacct
 2       0.00re       0.00cp     1575k   troff
14       0.00re       0.00cp      503k   ac
10       0.00re       0.00cp     1264k   psacct*
10       0.00re       0.00cp      466k   consoletype
 9       0.00re       0.00cp      509k   sa
 8       0.02re       0.00cp      769k   udisks-helper-a
 6       0.00re       0.00cp     1057k   touch
 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   less
 2       0.00re       0.00cp     1346k   groff
 2       0.00re       0.00cp     1383k   grotty
 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   cat
 2       0.00re       0.00cp     1018k   locale
 2       0.00re       0.00cp      802k   gtbl
  1. 9.86re 是一个“real time”根据挂钟分钟
  2. 0.01cp 是以 cpu 分钟为单位的系统/用户时间的总和
  3. 2466k 是 CPU 时间平均核心使用率,即 1k 单位
  4. sshd 命令名
下面的命令将显示root用户的活动

要获取单个用户的信息,请使用选项 -u.

代码语言:javascript复制
# sa -u
代码语言:javascript复制
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch
打印进程数

此命令打印进程总数和 CPU 分钟数。如果你看到这些数字继续增加,那么是时候查看系统中正在发生的事情了。

代码语言:javascript复制
# sa -m
代码语言:javascript复制
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k
按百分比打印排序

命令 sa -c显示最高比例的用户。

代码语言:javascript复制
# sa -c
代码语言:javascript复制
 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   man
 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   sa
14   10.61%       0.00re    0.00%       0.00cp    0.00%      503k   ac
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   consoletype
 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   touch
 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   less
 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   grotty
 2    1.52%       0.00re    0.00%       0.00cp    0.00%     1053k   mktemp
列出用户最后执行的命令

latcomm 命令用于搜索和显示以前执行的用户命令信息。你还可以搜索单个用户名的命令。例如,我们看到用户的命令 (rumenz)。

代码语言:javascript复制
# lastcomm rumenz
代码语言:javascript复制
su                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
id                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
grep                    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
grep                    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
dircolors               rumenz  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
tput                    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
tty                     rumenz  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
id                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    rumenz  pts/0      0.00 secs Wed Feb 13 15:56
id                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
命令的搜索日志

在该组织的帮助下 lastcomm 命令你将能够查看每个命令的单独使用。

代码语言:javascript复制
# lastcomm ls
代码语言:javascript复制
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56
ls                      rumenz  pts/0      0.00 secs Wed Feb 13 15:56

相关文章

Linux之last命令

Linux之lastb命令

0 人点赞