注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天朝布衣田中码农参上

苦逼码农的点点滴滴,请多多指教!

 
 
 

日志

 
 
 
 

Linux统计网站访问IP、请求地址、浏览器等信息的脚本命令  

2017-06-06 11:24:20|  分类: 服务器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
大家都知道,有时候需要统计访问网站的IP,当然利用一些第三方的统计脚本也是很方便做到的。不过在Linux下根据相应的access.log日志文件【无论是apache还是nginx】,同样可以做到精确计算,而且也非常简单,只要一行代码。

#awk -F "-" '{ print $1 }' /var/log/nginx/access.log|sort -r|uniq -c|sort -nr

执行结果如下:
Linux统计网站访问IP、请求地址、浏览器等信息的脚本命令 - sinsunson - 天朝布衣田中码农参上
当然以上代码肯定不尽人意,比如说需要最近一分钟之内的日志来统计,就得换用另一个代码了。

#tac /var/log/nginx/access.log | awk '
BEGIN{
cmd="date -d \"1 minute ago\" +%s"
cmd|getline oneMinuteAgo
}
{
day = substr($4,2,2)
month = substr($4,5,3)
year = substr($4,9,4)
time = substr($4,14,8)
time_str = day" "month" "year" "time
cmd="date -d \""time_str"\" +%s"
cmd|getline log_date
if (log_date>=oneMinuteAgo){
print
} else {
exit;
}
}'| awk -F "-" '{ print $1 }' |sort -r|uniq -c|sort -nr

执行结果如下:
Linux统计网站访问IP、请求地址、浏览器等信息的脚本命令 - sinsunson - 天朝布衣田中码农参上

脚本里面的1 minute ago,就是指要查找的时间范围,可以随意调整。当然如果需要统计其它信息,也是很方便的。
下面用两个简单例子说明下:
1)获取访问地址,将如下代码:

awk -F "-" '{ print $1 }' |sort -r|uniq -c|sort -nr

替换成:

awk '{ print $7 }' |sort -r|uniq -c|sort -nr

2)获取浏览器信息替换成:

awk '{ print $12 }' |sort -r|uniq -c|sort -nr

好了,更多的信息获取方法,大家可以自行去尝试,这里只是简单的使用方法,也并不完善。

  评论这张
 
阅读(1)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017