time awk '{a[$1]++}END{for(i in a){printf("%d\t%s\n",a[i],i)}}' access.log | sort -nr | head -5
timeawk'{a[$1]++}END{for(iina){printf("%d\t%s\n",a[i],i)}}'access.log|sort-nr|head-5谁...
time awk '{a[$1]++}END{for(i in a){printf("%d\t%s\n",a[i],i)}}' access.log | sort -nr | head -5
谁能给我详细解释下这个命令的意思 比如那个命令对应的什么意思 我修改下什么能变成统计访问频率最高的top10 url 拜谢 拜谢 展开
谁能给我详细解释下这个命令的意思 比如那个命令对应的什么意思 我修改下什么能变成统计访问频率最高的top10 url 拜谢 拜谢 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏80(财富值+成长值)
1个回答
展开全部
首先得知道access.log的文件格式,才知道访问频率是通过哪个字段值反映的。
追问
追答
从截图看,所有内容都在一行?我凌乱了。
先解释一下上面命令的含义吧。
{a[$1]++} 对每行内容,以第一个字段(估计就是IP地址吧)为数组下标进行计数。若遇第一个字段相同的情况,计数累加。用于统计各个IP地址出现的次数。
END{for(i in a){printf("%d\t%s\n",a[i],i)}} 对数组中的每个下标,打印最终统计次数及IP地址,中间以TAB分隔。
sort -nr 由于之前的打印是次数在前,所以这里可以用sort按数字由大到小排序
head -5 取前5个,即出现次数最多的(访问频率最高的)
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询