Apache 日志:按服务字节数计算前 10 个 URL

发布于 2024-12-07 02:03:56 字数 383 浏览 0 评论 0原文

我有一个 Apache 日志格式文件。示例字符串:

fj5020.inktomisearch.com - - [01/Oct/2006:06:35:59 -0700] "GET /example/When/200x/2005/04/27/A380 HTTP/1.0" 200 4776 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"

其中 4776 表示页面大小(以字节为单位)。我想按服务流量输出前 10 个 URL。我遇到了将每个唯一页面的所有大小相加的问题(页面的大小也可以是可变的)。有什么想法如何在 Bash 或/和 AWK 中做到这一点吗?

I have an Apache log format file. Example string:

fj5020.inktomisearch.com - - [01/Oct/2006:06:35:59 -0700] "GET /example/When/200x/2005/04/27/A380 HTTP/1.0" 200 4776 "-" "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)"

where 4776 is served page size in bytes. I'd like to output top 10 URLs by served traffic. I'm stuck with the problem of summing all sizes of each unique page (the size of a page can also be variable). Any ideas how to do it in Bash or/and AWK?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

动听の歌 2024-12-14 02:03:56

这对你有用吗?

awk '{a[$7]+=$10}END{for(x in a)print x, a[x]}' yourLogfile|sort -r -n -k2|head -n10

does this work for you?

awk '{a[$7]+=$10}END{for(x in a)print x, a[x]}' yourLogfile|sort -r -n -k2|head -n10
请远离我 2024-12-14 02:03:56

有很多方法可以做到。这是一个。

total=0
last_site=
while read site size ; do
    if [ "$site" != "$last_site" ] ; then
        [ ! -z "$last_site" ] && printf '%s %d\n' "$last_site" $total
        total=0
        last_site="$site"
    fi
    let total+=$size
done < <(awk '{print $1, $10}' log | sort)

printf '%s %d\n' "$last_site" $total

Lots of ways to do it. Here's one.

total=0
last_site=
while read site size ; do
    if [ "$site" != "$last_site" ] ; then
        [ ! -z "$last_site" ] && printf '%s %d\n' "$last_site" $total
        total=0
        last_site="$site"
    fi
    let total+=$size
done < <(awk '{print $1, $10}' log | sort)

printf '%s %d\n' "$last_site" $total
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文