【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
就会将日志整理好,整理好的截图如下。
这样每天只需要每天运行下就可以看到每天搜索引擎的访问情况了。
ps 关于日志分析工具小编只整理了小段代码了,当然还有更多更好的代码大家可以百度搜索一下即可知道了。