首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux RADIUS日志

Linux RADIUS日志
EN

Stack Overflow用户
提问于 2017-07-25 06:12:10
回答 1查看 2.4K关注 0票数 0

我有一个名为Radius的程序,用于验证用户登录。它正在CentOS服务器上运行。

日志位于/var/log/radius.log中。

它们如下:

代码语言:javascript
复制
Mon Jul 24 22:17:08 2017 : Auth: Login incorrect: [faaiz.aleem] (from client PTCL-VPN port 28 cli 116.213.34.97) DeviceIP: 192.168.30.101
Mon Jul 24 23:32:41 2017 : Auth: Login OK: [muhammad.razzaq] (from client PTCL-VPN port 29 cli 45.116.233.62) DeviceIP: 192.168.30.101
Tue Jul 25 03:06:08 2017 : Auth: Login OK: [sadiq.akhter] (from client devices port 1 cli 192.168.141.1) DeviceIP: 1.8.3.11
Tue Jul 25 03:07:54 2017 : Auth: Login OK: [sadiq.akhter] (from client devices port 1 cli 10.88.33.2) DeviceIP: 1.6.16.1
Tue Jul 25 09:44:39 2017 : Auth: Login incorrect: [shariq.iqbal] (from client devices port 1 cli 10.10.10.173) DeviceIP: 1.6.10.11

现在,我想对每个用户进行排序,例如,sadiq.akhter,以及他们最后的登录。请建议一个好的bash脚本或Linux命令来这样做。我会感谢你的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-25 06:22:31

使用定义的用户(并写入文件)只获取行的快速解决方案:

代码语言:javascript
复制
grep "USERNAME" /var/log/radius.log > log_for_user.log

从grep获得的最后一行应该是最后的登录记录。

您可以使用tac以反向顺序打印日志文件,并使用"grep -m1 .“只获得一个(最后一个)匹配。

返回日志中带有用户名的最后一行:

代码语言:javascript
复制
tac /var/log/radius.log | grep -m1 "USERNAME"

因此,在shell脚本中,它可以如下所示,将所有最近的条目返回给所有用户:

代码语言:javascript
复制
#!/bin/bash
for i in `cat USERLIST`
do
    tac LOGFILE | grep -m1 $i
done

其中,USERLIST是一个文件,列出了所有用户名,以换行符分隔,日志文件是您的radius日志文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45295204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档