- 论坛徽章:
- 5
|
回复 4# zooyo
zooyo,我不太理解为什么你这种理论上应该比较快的方法反而慢了呢?- [root@01 logs]# time awk '{a[$1]++}END{l=asort(a,b);for(i=l;i>l-10;i--){for(j in a){if(a[j]==b[i])print j}}}' access.log
- 119.2.8.195
- 221.199.206.68
- 119.147.6.170
- 119.147.74.172
- 119.147.6.158
- 119.147.6.157
- 119.147.6.162
- 119.147.6.148
- 14.105.228.69
- 183.63.148.42
- real 0m7.354s
- user 0m6.051s
- sys 0m0.583s
- [root@01 logs]# time awk '{a[$1]+=1};END{for(i in a)print i,a[i]}' access.log |sort -nr -k2,2|head -10
- 119.2.8.195 464052
- 221.199.206.68 398591
- 119.147.74.172 285922
- 119.147.6.170 285890
- 119.147.6.158 284856
- 119.147.6.157 283061
- 119.147.6.162 282853
- 119.147.6.148 273743
- 14.105.228.69 208827
- 183.63.148.42 168525
- real 0m5.748s
- user 0m5.238s
- sys 0m0.508s
- [root@01 logs]# du -h access.log
- 2.2G access.log
复制代码 |
|