nginx改编的log分析脚本,虽然第三方google和站长都有统计,但是不具备ip和renturn code查询,并且网上也有相关软件,但是收费,并且功能上也不是我最需要的。
使用方法:./log.sh access.log ,请赋予执行权限,针对默认的Nginx log。
功能:
1,统计return code的分布。便于知道网站的状态,比如,404和500错误。
2,访问最多的IP地址。便于预防攻击。
3,访问最多的html页面,用户集体行为分析。
4,导出所有post的记录。安全第一。
5,如果能结合linuxjishu/13830.html target=_blank class=infotextkey>awk命令,效果会更好,这个大家挖掘下。
代码:
#!/bin/bash
#nginx日志分析脚本
# www.jb200.com
#
echo "Error:please specify logfile"
exit 0
else
Log=$1
fi
if [ ! -f$1 ];then
echo "Sorry,sir,I can find this nginx log,pls try again"
exit 0
fi
echo "Distribution of return code"
echo "-----------------------------------------"
awk '{print $9}' $Log | sort | uniq -c | sort -nr
echo
echo "-----------------------------------------"
echo "Most of the ip:"
echo "------------------------------------------"
awk '{ print$1 }' $Log | sort |uniq -c| sort -nr | head -40
echo
echo "------------------------------------------"
echo "Most of the html:"
echo "------------------------------------------"
awk '{print $7}' $Log | grep html | sort | uniq -c | sort -nr | head -40
echo
echo "-----------------------------------------"
echo "Most of the Post record:"
echo "------------------------------------------"
cat $Log | grep POST | awk '{print $7}' | sort | uniq -c | sort -nr > post.rec
echo
echo "------------------------------------------"