首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从路由器日志文件中提取时间和IP地址

从路由器日志文件中提取时间和IP地址
EN

Stack Overflow用户
提问于 2014-09-10 08:50:13
回答 2查看 240关注 0票数 0

我有一个DD-WRT路由器,它将日志文件转发到GNOME的系统日志查看器,它工作得很好。我遇到的问题是路由器发送的信息要多得多,我希望跟踪这些信息:

代码语言:javascript
复制
Sep  9 20:41:17 192.168.1.1 kernel: [  272.160000] ACCEPT IN=br0 OUT=ppp0 MAC=00:00:00:00:00:00:00:00:00:00:00:00:00:00 SRC=192.168.1.5 DST=64.233.160.0 LEN=104 TOS=0x00 PREC=0x00 TTL=63 ID=31811 DF PROTO=UDP SPT=42633 DPT=3000 LEN=84

我如何才能减少到只有DatetimeACCEPTSRC=IPDST=IP

ACCEPT也可以是DROPREJECT

作为一个实验,我尝试了:

代码语言:javascript
复制
sed 's/.*SRC=\([0-9.]\+\).*/\1/' -e 's/.*DST=\([0-9.]\+\).*/\1/' myrouter.log

它所做的就是创建一个很长的SRC IP列表,如果是DST IP的,则创建一个很长的列表。理想情况下,我希望将它们放在日志查看器的同一行。

EN

回答 2

Stack Overflow用户

发布于 2014-09-10 13:41:16

简单的方法:

代码语言:javascript
复制
awk '{print $1,$2,$3,$8,$12,$13}' myrouter.log
Sep 9 20:41:17 ACCEPT SRC=192.168.1.5 DST=64.233.160.0

去掉标签:

代码语言:javascript
复制
awk '{split($12,a,"=");split($13,b,"=");print $1,$2,$3,$8,a[2],b[2]}' myrouter.log
Sep 9 20:41:17 ACCEPT 192.168.1.5 64.233.160.0
票数 1
EN

Stack Overflow用户

发布于 2014-09-10 13:45:41

代码语言:javascript
复制
sed -n 's/^\([a-zA-Z0-9 ]\{6,7\}[0-9:]\{8\} \).* \([ACCEPTDROPJ] \).*\(\([SRCDT]\{3\}=[0-9.]\{7,15\} *\)\{2\}\).*/\1\2\3/p'  YourFile

使用-n筛选与此结构不对应的行。Rest是纯模式匹配和分组

如果信息总是在同一位置,在这种情况下,其他工具(特别是AWK)会更快、更容易使用

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

https://stackoverflow.com/questions/25755716

复制
相关文章

相似问题

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