近几天,官网登陆注册页面总是会有人进行账号密码试探,为了观察网站每天一些访问量情况,提早发现问题,特意统计了网站的页面及IP访问量,并将前10名,通过web页面展示出来。
1.分析页面和IP访问量排行。
#!/bin/bash
cd /usr/local/nginx/logs/`date -d yesterday +%Y`/`date -d yesterday +%m`
date -d yesterday +%F > /opt/index.txt
zcat access_$(date -d yesterday +%Y%m%d).log.tar.gz | cut -d " " -f 7 | cut -d "?" -f 1 | sort | uniq -c | sort -rn | head -n 10 >> /opt/index.txt
zcat access_$(date -d yesterday +%Y%m%d).log.tar.gz | cut -d " " -f 1 | sort| uniq -c | sort -rn | head -n 10 >> /opt/index.txt
2.将此脚本放入计划任务每天执行。
00 03 * * * /bin/bash /root/top10.sh
3.nginx上配置虚拟主机。
server {
listen 8080;
server_name localhost;
location / {
root /opt;
index index.html index.htm index.txt;
autoindex on;
auth_basic "password";
auth_basic_user_file /opt/top10password;
}
}
4.最终访问结果。
PS:之前导出的文件名字index.html,但是在浏览器访问整个页面完全是在一行,一开始以为是linux的换行符的问题,但是发现导出的内容是有换行符,于是尝试将index的名字更改,发现正常了。