【查看nginx版本】nginx中查看分析各搜索引擎的来访日志

更新时间:2019-08-22    来源:nginx    手机版     字体:

【www.bbyears.com--nginx】

一、将每天网站的日志分割出来,因为一个日志文件随着时间的积累会变的很庞大,所以养成习惯当天的日志切割成一个日志文件,便于读取。

可以读取我博客里的相关文章:http://www.111cn.net/sys/nginx/72367.htm

二、通过一个shell脚本读取日志文件,将日志显示出来。
脚本内容:

 代码如下

#!/bin/bash
#  修改下面一行为日志位置
log_dir="/home/wwwlogs/www.****.com_*.log"
##########
#  $key为grep的关键字,$word为提示,要求一一对应,数量相同
##########
#http 代码
key[0]="\" 200 [0-9]\{3\}";word[0]="http 200"
key[1]="\" 206 [0-9]\{3\}";word[1]="http 206"
key[2]="\" 404 [0-9]\{3\}";word[2]="http 404"
key[3]="\" 503 [0-9]\{3\}";word[3]="http 503"
##########
#  搜索引擎爬虫
key[4]="Googlebot.*google\.com\/bot\.html";word[4]="来自Google爬虫"
key[5]="Baiduspider.*baidu\.com\/search\/spider\.html";word[5]="来自百度蜘蛛"
key[6]="bingbot.*bing\.com\/bingbot\.htm";word[6]="来自Bing爬虫"
#Soso "Sosospider.*soso\.com\/webspider\.htm"
#有道 "YoudaoBot.*youdao\.com\/help\/webmaster\/spider\/"
#Yahoo中国 "Yahoo\! Slurp China"
##########
#  浏览器
key[7]="MSIE";word[7]="MSIE"
key[8]="Gecko\/.*Firefox";word[8]="Firefox"
key[9]="AppleWebKit.*like Gecko";word[9]="Webkit"
key[10]="Opera.*Presto";word[10]="Opera"
#360安全 "MSIE.*360SE" 或加ie内核版本 "MSIE 6\.0 .*360SE" "MSIE 7\.0 .*360SE" "MSIE 8\.0 .*360SE" "MSIE 9\.0 .*360SE"
#360急速 "AppleWebKit.*QIHU 360EE"
##########
操作系统
key[11]="Windows NT 6.1";word[11]="Windows 7"
key[12]="Macintosh\; Intel Mac OS X";word[12]="Mac OS X"
key[13]="X11.*Linux";word[13]="Linux with X11"
key[14]="Android\;";word[14]="Android"
#Windows系列 win2000"Windows NT 5.0" winxp"Windows NT 5.1" winvasta"Windows NT 6.0" win7"Windows NT 6.1"
#SymbianOS "SymbianOS"
##########
#  设备
key[15]="iPad.*like Mac OS X";word[15]="iPad"
key[16]="Nokia";word[16]="诺基亚系列"
key[17]="Nokia5800";word[17]="Nokia5800 XpressMusic"
#iPhone "iPhone.*like Mac OS X"
##########
#  其他
key[18]="GET \/.*\.mp3 HTTP";word[18]="访问mp3文件"
key[19]="GET \/.*\.jpg HTTP";word[19]="访问jpg文件"

#  配置结束
##############################################################################

log_num=$(ls ${log_dir} | wc -l)
fileid=0
isgz=0
#gz检查
for file in $(ls ${log_dir})
do
if [ "${file##*.}" = "gz" ]; then
        isgz[$fileid]=1
        gzip -dvf $file
        logfile[$fileid]=$(echo $file | sed "s/\.gz$//")
        (( fileid++ ))
else
        isgz[$fileid]=0
        logfile[$fileid]=$file
        (( fileid++ ))
 fi
done
#  检查key和 word 的数量是否一致
if [ ${#word[@]} -ne ${#key[@]} ]
then
 echo "配置有错误,key和word的数量不一致"
else

checkid=0
while [ $checkid -lt $log_num  ]
do
filename=${logfile[$checkid]}
totle=$(cat $filename | wc -l)
echo "日志 ${filename} 共 ${totle} 行,需要处理 ${#key[@]} 项"
echo "来源IP数:$(cat $filename | awk "{print $1}" |sort|uniq|wc -l)"
i=0
while [ $i -lt ${#key[@]} ]
do
 s1=${word[$i]}
 s2=$(cat $filename | grep """${key[$i]}""" | wc -l)
 s3=$(awk "BEGIN{printf "%.2f%\n",("$s2"/"$totle")*100}")
 echo "${s3} ${s1}: ${s2}"
 ((i++))
done
(( checkid++ ))
echo "-----------------"
done
fi
#  还原压缩文件
gzid=0
while [ $gzid -lt $log_num ]
do
if [ "${isgz[$gzid]}" = "1" ]
then
gzip -v ${logfile[$gzid]}
fi
(( gzid++ ))
done


 
也可以直接到我的站里下载这个脚本。
脚本中的内容你要将log的文件位置修改下,

log_dir="/home/wwwlogs/www.******.com_*.log"

然后保存,chmod +X nla.sh  赋予写权限。
使用的时候 只需要运行下sh nla.sh
就会将日志整理好,整理好的截图如下。

 

nginx中查看分析各搜索引擎的来访日志

这样每天只需要每天运行下就可以看到每天搜索引擎的访问情况了。


ps 关于日志分析工具小编只整理了小段代码了,当然还有更多更好的代码大家可以百度搜索一下即可知道了。

本文来源:http://www.bbyears.com/caozuoxitong/63572.html