登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
签到
每天签到奖励2-10圆
导读
排行榜
TG频道
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
VIP申请
VIP网盘
网盘
联系我们
发帖说明
每日签到
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
安全
›
Linux 如何统计系统上各个用户登录(或者登出)记录出现 ...
Linux 如何统计系统上各个用户登录(或者登出)记录出现的次数?
[ 复制链接 ]
柴古香
2025-7-27 01:11:10
命令
last | grep -v "^$" | awk '{ print $1 }' | sort -nr | uniq -c
复制代码
逐段解析
last
从 /var/log/wtmp(或者对应的系统登录日志)中读取并列出最近的登录、重启、关机等记录。
每行开头通常是用户名,例如:
alice pts/0 192.168.1.5 Tue Jul 22 10:15 still logged in
bob tty1 Mon Jul 21 09:00 - 17:00 (08:00)
reboot system boot 5.11.0-27-generic Tue Jul 22 09:00
复制代码
grep -v "^$"
^$ 匹配“空行”。
-v 表示“取反”,也就是去掉所有空行。
这样做主要是防止后面处理时碰到空行导致多余的空白用户名。
awk '{ print $1 }'
将每一行按空白(空格或制表符)拆分字段,$1 就是第 1 个字段——用户名(或者特殊条目如 reboot、shutdown 等)。
输出后的结果是一列用户名,例如:
alice
alice
bob
reboot
alice
复制代码
sort -nr
sort 用来对前一步的用户名列表进行排序。
-n 按“数值”排序,-r 倒序(从大到小)。
虽然此处每行都是字符串用户名,不是纯数字,但 sort -nr 会尝试把整行当数字比较,遇到非数字时效果可能与 sort -r 接近(把“字母行”视作 0 排在后面)。
这里本意是先把相同用户名聚在一起(任何 sort 都可);如果想按照出现次数倒序,应该在 uniq -c 后再加一次 sort -nr。
uniq -c
uniq 用来把相邻的相同文本行合并,并加上出现次数。
-c 选项会在每行前面打印该行重复的次数。
例如,将上面的用户名列表:
alice
alice
alice
bob
reboot
复制代码
经过 uniq -c 会得到:
3 alice
1 bob
1 reboot
复制代码
整体作用
读取登录记录 → last
去掉空行 → grep -v "^$"
提取用户名 → awk '{print $1}'
(先行)排序以便于计数 → sort
统计每个用户名出现的次数 → uniq -c
典型应用场景:
找出最活跃的用户
检测异常频繁登录(如暴力破解)
审计系统访问情况
统计服务器用户活动频率
最终输出形如:
123 alice
45 bob
10 charlie
2 reboot
复制代码
表示 alice 的登录/登出记录出现了 123 次,以此类推。可以进一步在输出后面再加一个 | sort -nr,就能让出现次数多的用户排在最上面,更直观地看到“谁最常登录”:
last | grep -v "^$" | awk '{print $1}' | sort | uniq -c | sort -nr
复制代码
这样就完成了从登录记录到按频率排名的全流程统计。
对于大型系统,可以使用更高效的工具组合:
last -w | cut -d' ' -f1 | grep -v '^$' | sort | uniq -c | sort -nr
复制代码
-w:显示完整用户名(避免截断)
cut -d' ' -f1:比 awk 更轻量级的字段提取工具
实用场景:
安全审计:检测异常登录行为
# 检查root登录
last | grep -v "^$" | awk '$1=="root"{print}' | wc -l
复制代码
排除系统账户(仅统计真实用户):
last | grep -v -E "^(reboot|wtmp|^$)" | awk '{print $1}' | sort | uniq -c | sort -nr
复制代码
按时间段统计:
# 统计本月登录
last -s $(date +%Y-%m-01) | grep -v "^$" | awk '{print $1}' | sort | uniq -c | sort -nr
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
Linux
如何
统计
系统
各个
相关帖子
如何使用io_uring构建快速响应的I/O密集型应用?
Cloudreve网盘系统程序
多cms养站系统【AI原创】程序
如何搭建智能DNS服务器?
浅谈如何更好的进行需求评审
【经验贴】多项目并行,如何解决资源管理这个难点?
如何把一个接口设计好?
docker部署showdoc以及linux网关配置
Windows系统下Visual Studio Code (VSCode)中C++的环境配置
4.布局系统
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
如何使用io_uring构建快速响应的I/O密集型应用?
0
286
井晶灵
2025-10-09
程序
Cloudreve网盘系统程序
0
6
新程序
2025-10-10
程序
多cms养站系统【AI原创】程序
0
11
新程序
2025-10-10
安全
如何搭建智能DNS服务器?
0
804
能氐吨
2025-10-10
安全
浅谈如何更好的进行需求评审
1
277
边书仪
2025-10-10
安全
【经验贴】多项目并行,如何解决资源管理这个难点?
0
716
拼匍弦
2025-10-10
安全
如何把一个接口设计好?
0
370
戎玉珂
2025-10-10
安全
docker部署showdoc以及linux网关配置
0
148
咫噎
2025-10-10
安全
Windows系统下Visual Studio Code (VSCode)中C++的环境配置
0
150
吉娅寿
2025-10-10
业界
4.布局系统
0
357
拍棹
2025-10-11
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
科技
业界
签约作者
程序园优秀签约作者
发帖
柴古香
2025-7-27 01:11:10
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9999501
dage888
999994
富账慕
10007
4
匝抽
9986
5
孙淼淼
9992
6
柴古香
9993
7
筒濂
9982
8
凌彦慧
9988
9
崔瑜然
9984
10
慢秤
9979
查看更多