怎么统计apache代理的访问量
答案:1 悬赏:40 手机版
解决时间 2021-03-11 10:46
- 提问者网友:送舟行
- 2021-03-10 18:37
怎么统计apache代理的访问量
最佳答案
- 五星知识达人网友:第四晚心情
- 2021-03-10 18:56
1、将APACHE的日志格式设置为LogFormat “%h %a %B %t %H %m”
2、创建SHELL脚本如脚本名称为tongji,代码如下:
<!-- lang: shell -->
#!bin/bash
echo 0 > /logs/sumnum
arr=("January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December")
arr1=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")
hours=$*
hours1=${hours:0:2}
hours2=${hours:3:2}
ifhours1=${hours1:0:1}
ifhours2=${hours2:0:1}
if [ $ifhours1 -eq 0 ]
then
bhours1=${hours1:1:1}
else
bhours1=$hours1
fi
if [ $ifhours2 -eq 0 ]
then
bhours2=${hours2:1:1}
else
bhours2=$hours2
fi
sumnum=0
if [ $bhours1 -lt $bhours2 ]
then
for((i=$bhours1;i<=$bhours2;i++));
do
curdate=`date +%d/%B/%Y:"$i"`
echo $curdate > /logs/abc
for j in {0..11}
do
tmp=`grep ${arr[$j]} /logs/abc`
if [ -n $tmp ]
then
if [ ${#tmp} -gt 0 ]
then
format=${curdate/${arr[$j]}/${arr1[$j]}}
format=${format//\//\\/}
num=`awk '$1="127.0.0.1" && $4 ~/'"$format"'/ {++s} END {print s}' /apachelog /proxycgi_access_log`
if [ ${#num} -gt 0 ]
then
`echo $num >> /logs/sumnum`
fi
fi
fi
done
done
else
echo error
fi
sumnum=`awk '{S[s++]=$1} END {for(a in S) sum += S[a]; print sum}' /logs/sumnum`
echo $sumnum
3、chmod u+x tongji
4、输入命令tongji 12-23,参数12-23表示当日12点至23点的流量
2、创建SHELL脚本如脚本名称为tongji,代码如下:
<!-- lang: shell -->
#!bin/bash
echo 0 > /logs/sumnum
arr=("January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December")
arr1=("Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec")
hours=$*
hours1=${hours:0:2}
hours2=${hours:3:2}
ifhours1=${hours1:0:1}
ifhours2=${hours2:0:1}
if [ $ifhours1 -eq 0 ]
then
bhours1=${hours1:1:1}
else
bhours1=$hours1
fi
if [ $ifhours2 -eq 0 ]
then
bhours2=${hours2:1:1}
else
bhours2=$hours2
fi
sumnum=0
if [ $bhours1 -lt $bhours2 ]
then
for((i=$bhours1;i<=$bhours2;i++));
do
curdate=`date +%d/%B/%Y:"$i"`
echo $curdate > /logs/abc
for j in {0..11}
do
tmp=`grep ${arr[$j]} /logs/abc`
if [ -n $tmp ]
then
if [ ${#tmp} -gt 0 ]
then
format=${curdate/${arr[$j]}/${arr1[$j]}}
format=${format//\//\\/}
num=`awk '$1="127.0.0.1" && $4 ~/'"$format"'/ {++s} END {print s}' /apachelog /proxycgi_access_log`
if [ ${#num} -gt 0 ]
then
`echo $num >> /logs/sumnum`
fi
fi
fi
done
done
else
echo error
fi
sumnum=`awk '{S[s++]=$1} END {for(a in S) sum += S[a]; print sum}' /logs/sumnum`
echo $sumnum
3、chmod u+x tongji
4、输入命令tongji 12-23,参数12-23表示当日12点至23点的流量
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯