Linux系统统计用户登录和注销时间的工具之ac

发布于:2025-08-31 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

1. 功能概述

​​1.1 核心功能​​

1.2 依赖文件​​

1.3 适用场景

2. 语法格式

3. 常用选项

4. 输出示例

4.1 默认输出(总登录时长)

4.2 按天统计

4.3 显示每个用户的登录时长

5. 注意事项

5.1 权限要求

5.2 文件依赖

5.3 安装问题

5.4 时间单位

5.5 文件路径差异


Linux 中的 ac 命令是一个用于统计用户登录和注销时间的工具。它通过读取 /var/log/wtmp 文件(记录用户登录和注销信息)来生成报告,帮助系统管理员分析用户的活动情况。以下是其详细解析:

1. 功能概述

​1.1 核心功能​

  • 用户登录时长统计​​:基于 /var/log/wtmp文件记录,显示用户累计登录时间(默认单位为小时)。
  • 时间粒度分析​​:支持按天、用户维度统计登录时长。
  • 系统监控辅助​​:帮助管理员分析用户活动模式及资源使用情况。

1.2 依赖文件​

  • /var/log/wtmp​:记录用户登录/注销事件,需确保文件存在且权限可读。
  • acct/psacct软件包​​:提供 ac命令及相关工具(如 lastcommsa)。

1.3 适用场景

  • 监控用户活跃度。
  • 安全审计(检查异常登录行为)。
  • 统计用户资源使用情况(如在线时间)。

2. 语法格式

ac  [选项]   [用户名...]

3. 常用选项

选项 功能 示例
-d 按天统计登录时长,显示每天的总计时间。 ac -d
-p 显示每个用户的登录总时长,并在末尾显示所有用户的总计时间。 ac -p
-y 在输出日期时包含年份。 ac -d -y
-f 指定自定义的 wtmp 文件路径(默认为 /var/log/wtmp)。 ac -f /path/to/custom_wtmp
-n 以数字形式显示时间戳(不解析为具体时间)。 ac -n
-s 指定起始日期(格式:YYYY-MM-DD)。 ac -s 2025-08-26
-e 指定结束日期(格式:YYYY-MM-DD)。 ac -e 2025-08-30
-h 显示帮助信息。 ac -h

4. 输出示例

4.1 默认输出(总登录时长)

[root@centos79-20251123 ~]# ac
	total     6035.10
  • 说明:所有用户累计登录时间为 6034.48 小时

4.2 按天统计

[root@centos79-20251123 ~]# ac  -d
Nov 24	total        1.57
Nov 25	total        0.71
Nov 30	total        0.19
Dec  1	total        4.64
Dec  4	total        1.21
Dec 12	total       13.38
Dec 20	total        4.58
Dec 21	total        2.35
Dec 26	total        2.88
Jan  2	total        1.57
Jan  3	total       22.71
Mar  4	total        7.69
Mar  5	total       14.50
Mar 13	total        4.19
Mar 14	total        9.19
Mar 15	total       10.20
Mar 18	total        9.19
Mar 28	total       12.38
Mar 29	total        3.94
Apr  1	total        4.20
Apr  3	total        2.84
Apr  9	total        6.19
Apr 10	total        0.32
Apr 12	total       18.38
Apr 15	total        0.13
Apr 16	total        5.19
Apr 24	total        4.19
Apr 25	total        4.19
Apr 26	total        2.19
Apr 28	total        3.56
Apr 30	total        9.31
May  8	total        0.45
May  9	total        7.38
May 11	total        4.65
May 19	total        5.68

4.3 显示每个用户的登录时长

[root@centos79-20251123 ~]# ac  -p
	yq                                   3.26
	zhh                                  2.44
	lyh                                  2.67
	root                              6026.32
	total     6034.69
  • 说明:显示每个用户的累计登录时间,并在末尾汇总总时长。

5. 注意事项

5.1 权限要求

  • ac 命令需要 root 权限 才能读取 /var/log/wtmp 文件。
  • 非 root 用户执行时会报错:
No /var/log/wtmp

5.2 文件依赖

  • 如果 /var/log/wtmp 文件被删除或清空,ac 命令将无法输出结果。
  • 可通过 last 命令查看 wtmp 文件是否正常。

5.3 安装问题

ac 命令可能未预装在部分 Linux 发行版中。需手动安装:

  • Debian/Ubuntu
    sudo apt install sysstat
  • Red Hat/CentOS
    sudo yum install sysstat

5.4 时间单位

  • 输出的登录时长单位为 小时,小数部分表示分钟(如 0.30 表示 18 分钟)。

5.5 文件路径差异

  • 某些系统可能将 wtmp 文件存储在 /var/adm/wtmp 或其他路径,需通过 -f 选项指定。


网站公告

今日签到

点亮在社区的每一天
去签到