【发布时间】:2015-02-13 16:02:40
【问题描述】:
得到一个大的 syslog 文件,其中包含类似这样的消息:
12 月 15 日 06:26:34 泰坦内核:[1710994.114000] Drop_43 IN=eth0 OUT= MAC=00:04:23:b7:c1:26:00:06:f6:5f:02:7f:08: 00 SRC=52.53.123.183 DST=108.249.31.54 LEN=44 TOS=0x00 PREC=0x00 TTL=60 ID=20977 PROTO=TCP SPT=80 DPT=1 WINDOW=16384 RES=0x00 ACK SYN URGP=0
我必须找出 10 个最活跃的 IP 并打印这些 IP 访问最多的端口。
设法用这个计算了前 10 个最活跃的 IP -
cat syslog| grep SRC | awk '{print$11}' | sort -n | uniq -c | sort -rn | head -10
它给出了类似的东西
2528 SRC=93.65.51.154 1860 SRC=162.31.151.223
我还用这个输入统计了访问次数最多的端口
cat syslog | awk '{FS="DPT="};{print$2}'| awk '{FS=" "};{print $1}'| sort -n| uniq -c| sort -rn| head -10
现在我需要以某种方式将这两者结合起来以正确完成解析。有什么想法吗?
【问题讨论】:
-
你的预期输出是什么?
-
预期输出应类似于 -
-
我不明白为什么要使用
sort -n对非数值进行排序(SRC=) -
你有没有尝试一些新的代码来结合这两个?
-
(command1 ; command2) > output