You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

awk+sort+uniq组合统计异常:如何按域名统计DNS日志?

解决DNS日志按域名合并统计请求/回复次数的问题

你遇到的问题核心是日志中域名字段附带了端口号,导致相同域名因端口不同被uniq当成独立条目统计。只需要在awk处理阶段剥离端口号,再进行统计即可。

修改后的命令

awk '/DNSHandler:ProxyResolver\] Request|Reply/ {
    sub(/:.*/, "", $8)  # 去掉域名字段中冒号及后面的端口部分
    print $5, $8
}' file.log | sort | uniq -c | sort -r

命令说明

  1. 剥离端口:用sub(/:.*/, "", $8)匹配$8字段中第一个冒号到结尾的内容(即端口部分),并替换为空,只保留纯域名。
  2. 输出关键信息:打印操作类型(Request/Reply)和处理后的纯域名。
  3. 排序去重统计:sort将相同条目聚合,uniq -c统计出现次数,最后sort -r按次数降序排列结果。

更灵活的分组统计方式

如果需要按域名归类,同时清晰展示请求和回复次数,可以用awk直接完成统计分组:

awk '/DNSHandler:ProxyResolver\] Request|Reply/ {
    sub(/:.*/, "", $8)
    count[$8, $5]++
} END {
    for (key in count) {
        split(key, item, SUBSEP)
        printf "%-20s %-10s %d\n", item[1], item[2], count[key]
    }
}' file.log | sort -k1,1

输出格式示例:

www.bing.com          Request    2
www.bing.com          Reply      3
google.com            Request    5

内容的提问来源于stack exchange,提问作者Saeed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 17:55:04