使用 psacct 或 acct 工具监控 Linux 用户性能
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
有关更多信息和用法,请参阅这些工具的手册页。