扩大
缩小

网站状态相关统计检查脚本

#!/bin/bash
##日志格式:'$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'

time_ip(){
time=$1
start_date=`date -d "-${time}minute" +%d/%b/%Y:%H:%M:%S`
stop_date=`date +%d/%b/%Y:%H:%M:%S`
awk -F '[ "[]' -v start="$start_date" -v stop="$stop_date" '{if($5>=start && $5<=stop){print $0}}' /www_logs/access_log/pc.access.log >/tmp/${time}min.log
echo "当前时间前${time}分钟的访问数:" `wc -l /tmp/${time}min.log | awk '{print $1}'`
echo "-----------------------------------"
echo "当前时间前${time}分钟的访问ip前10"
awk '{print $NF}' /tmp/${time}min.log |sort |uniq -c |sort -k1 -nr |head -n10|sed "s#\"##g"
}
echo "-------------------------------------------------------------------------------------"
time_ip 1
echo "-----------------------------------"
time_ip 5
echo "-----------------------------------"
time_ip 15
echo "-----------------------------------"
echo "今天到现在访问ip访问数(UV):"`awk '{print $NF}' /www_logs/access_log/pc.access.log | sort -n | uniq | wc -l`
echo "-----------------------------------"
echo "今天到现在访问url访问数(UV):"`awk '{print $7}' /www_logs/access_log/pc.access.log | sort | uniq |wc -l `
echo "-----------------------------------"
echo "今天到现在页面访问数(PV):"`awk '{print $7}' /www_logs/access_log/pc.access.log|wc -l `
echo "-----------------------------------"
echo "今天到现在访问最多的ip前10"
awk '{print $NF}' /www_logs/access_log/pc.access.log |sort |uniq -c |sort -k1 -nr |head -n10|sed "s#\"##g"
#echo "-----------------------------------"
#echo "今天到现在访问大于100次的IP"
#awk '{a[$NF]++;if(a[$NF]>100){b[$NF]++}}END{for(i in b){print i,a[i]}}' /www_logs/access_log/pc.access.log |sort -k2 -nr |head -n10|sed "s#\"##g"
echo "-----------------------------------"
echo "统计访问最多的前10个页面"
awk '{a[$7]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' /www_logs/access_log/pc.access.log
#echo "-----------------------------------"
#echo "统计每个URL访问内容的总大小"
#awk '{a[$7]++;size[$7]+=$10}END{for(i in a)print a[i],size[i],i}' /www_logs/access_log/pc.access.log
#echo "-----------------------------------"
#echo "统计每个IP访问状态码数量"
#awk '{a[$NF" "$9]++}END{for(i in a)print i,a[i]}' /www_logs/access_log/pc.access.log
echo "-----------------------------------"
echo "统计访问状态码为404的IP及出现次数"
awk '{if($9~/404/)a[$NF" "$9]++}END{for(i in a)print i,a[i]}' /www_logs/access_log/pc.access.log|sort -k3 -nr |head -n10|sed "s#\"##g"
echo "-----------------------------------"
echo "统计访问状态码为404的文件及出现次数"
awk '{if($9~/404/)a[$7]++}END{for(i in a)print a[i],i|"sort -k1 -nr|head -n10"}' /www_logs/access_log/pc.access.log
echo "-----------------------------------"
echo "统计传输时间超过 30 秒的文件"
awk '($NF > 30){print $7}' /www_logs/access_log/pc.access.log | sort -n | uniq -c | sort -nr | head -20

echo "统计最耗时的页面_超过60秒"
awk '($NF > 60 && $7~/\.php/){print $7}' /www_logs/access_log/pc.access.log | sort -n | uniq -c | sort -nr | head -20

posted @ 2019-11-23 14:29  明月青天  阅读(203)  评论(0)    收藏  举报