shell脚本(14)

利用shell脚本分析Apache访问日志
1、获取访问日志中每个ip的访问次数;
2、打印出访问次数前5的ip地址和访问次数;
3、提取访问次数超过20次的页面;
4、打印出访问量最大的页面;
5、查看传输字节数大于200的资源;
6、打印出消耗带宽最大的页面;
7、查看访问次数最多的ip;
8、查看某一天的独立ip访问数量;
9、提取出某一天的PV量。

环境准备
准备一台Centos7服务器
系统: Centos7.3
内存:1G
cpu: 2核
IP地址: 10.0.0.41
# 创建脚本文件
vim pv.sh
#!/bin/bash
read -ep "请输入要分析的访问日志的路径:" access_log
PV=$(awk 'END{print NR}' $access_log)
IP=$(awk '{print $1}' $access_log | sort | uniq | wc -l)
T_IP=$(awk '{print $1}' $access_log | sort | uniq -c | sort -nr | head -n 5)
M_IP=$(awk '{print $1}' $access_log | sort | uniq -c | sort -nr | head -n 1)
PAGE=$(awk '{print $6}' $access_log | sort | uniq -c | awk '$1>20{print $0}')
B_PAGE=$(awk '{print $6}' $access_log | sort | uniq -c | sort -nr | head -n 1)
T_PAGE=$(awk '$10>200{print $10,$6}' $access_log | head -n 5)
M_PAGE=$(awk '{print $10,$6}' $access_log | sort -nr| head -n 1)


echo "今日PV量:$PV"
echo -e "今日访问的独立IP数量:$IP"
echo -e "访问量前5的IP:\n$T_IP"
echo -e "访问量最多的IP:\n$M_IP"
echo -e "访问次数超过20次的页面:\n$PAGE"
echo -e "访问量最大的页面:\n$B_PAGE"
echo -e "大于200字节的页面:\n$T_PAGE"
echo -e "最消耗带宽的页面有:\n$M_PAGE"
# 执行脚本文件
sh pv.sh 
发布了68 篇原创文章 · 获赞 24 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/aaronszm/article/details/103973839