- #!/bin/bash
- if [[$# == 0]];then
- echo "Error: 请输入要查询的天数???"
- else
- echo "暂时不支持 centos 的 7 的版本!!!"
- NOW_TIME_CUO=date +%s
- ((END_TIME_CUO=${NOW_TIME_CUO}-
- echo $1*3600*24 | bc
- ))
- NOW_TIME=
- date | awk {print $3"\\\/"$2"\\\/"$NF}
- END_TIME=
- date -d @${END_TIME_CUO}| awk {print $3"\\\/"$2"\\\/"$NF}
- ## 根据 ip 统计一段时间的 UV
- echo -e "\033[31mOutput $1 days UV: \033[0m"
- cat access.log|grep -v curl|sed -n "/${END_TIME}/,/${NOW_TIME}/p"| awk {print $1}| sort| uniq -c| wc -l
- ## 根据访问 URL 访问 PV
- echo -e "\033[31mOutput $1 days PV: \033[0m"
- cat access.log|grep -v curl|sed -n "/${END_TIME}/,/${NOW_TIME}/p"| awk {print $7}| wc -l
- ## 查询访问最频繁的 URL
- echo -e "\033[31mOutput $1 days 10 HOT URL: \033[0m"
- cat access.log|grep -v curl|sed -n "/${END_TIME}/,/${NOW_TIME}/p"| awk {print $7}| sort|uniq -c|sort -n -k 1 -r|head
- ## 查询访问最频繁的 IP
- echo -e "\033[31mOutput $1 days 10 HOT IP: \033[0m"
- cat access.log| grep -v curl|sed -n "/${END_TIME}/,/${NOW_TIME}/p"|awk {print $1}|sort|uniq -c|sort -n -k 1 -r|head
- fi
- :<<DOWN
1 根据访问 IP 统计 UV
awk {print $1} access.log | sort | uniq -c | wc -l
2 统计访问 URL 统计 PV
awk {print $7} access.log | wc -l
3 查询访问最频繁的 URL
awk {print $7} access.log | sort | uniq -c |sort -n -k 1 -r | more
4 查询访问最频繁的 IP
awk {print $1} access.log | sort | uniq -c |sort -n -k 1 -r | more
5 根据时间段统计查看日志
- cat access.log |sed -n /14\/Mar\/2015:21/,/14\/Mar\/2015:22/p| more
- DOWN
来源: http://www.bubuko.com/infodetail-2521073.html