NGINX结合SHELL统计用户的UV及IP汇总

公司新的需求,怀疑PV和IP的比例不对,看是不是有恶意的东东:

NGINX配置:

log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_cookie" "$request_time" "$upstream_response_time" "$upstream_cache_status" "$uid"‘;
set $uid "-";
        if ( $http_cookie ~* "uid=(\S+)(;.*|$)"){
            set $uid $1;
        }    

PV前二十位排行榜:

cat test.log|sort|awk ‘$NF!~/-/ {print $1"," $NF}‘|uniq |awk -F  , ‘{print $1}‘|uniq -c|sort -nr|head -20

12     53.27.4.22
1     61.183.86.163
1     61.183.237.146
1     58.255.215.115
1     27.154.152.131
1     223.240.50.192
1     222.94.205.228
1     219.140.69.67
1     218.89.115.155
1     218.28.77.119
1     183.63.212.176
1     183.54.95.254
1     182.107.39.76
1     163.179.53.171
1     14.130.237.192
1     124.207.249.82
1     124.128.87.134
1     124.117.198.63
1     122.224.216.242
1     121.61.112.2

公司总的IP数:

cat test.log|sort|awk ‘$NF!~/-/ {print $1"," $NF}‘|uniq |awk -F  , ‘{print $1}‘|uniq -c|sort -nr|wc -l

32

公司总的UV数:

cat test.log|sort|awk ‘$NF!~/-/ {print $1"," $NF}‘|uniq |awk -F  , ‘{print $1}‘|uniq -c|sort -nr|awk ‘BEGIN{total=0}{total=total+$1}END{print "UV is:" total}‘

UV is:43

时间: 2024-10-16 14:27:16

NGINX结合SHELL统计用户的UV及IP汇总的相关文章

百度统计数据的UV和IP为什么不一样?

相信网站站长们在每天查看百度统计数据时会发现网站的IP和UV数据时大时小,有时候IP比UV大,有时候UV比IP大,站长们可能对这些情况感到奇怪.今天就和大家分享一下UV和IP的知识,帮助大家更好地做好网站流量分析工作. 一.Cookie.UV和IP的概念 要区别UV和IP,就要先说到Cookie.Cookie(或Cookies)指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).Cookie中不但可以确认用户,还能包含计算机和浏览器的信息,所以一个用户

服务器nginx 用shell 统计并发

# netstat -an| grep ':80' | awk '/tcp/{a[$NF]++}END{for (i in a) print i,a[i]}' # echo "当前并发数:`netstat -ant | grep :80 | awk '{print $5}' | awk -F":" '{print $1}'| sort | uniq -c | sort -r -n | awk 'BEGIN{total=0}{total+=$1}END{print total}

日志分析统计PV UV 独立IP

pv一般都是统计指定页面的点击量,这里用首页来计算 grep "/index.php" /var/log/nginx/access.log | wc -l uv是统计指定页面上真是访问的用户,也就是说同一ip 不管点击多少次都算一个uv grep "/index.php" /var/log/nginx/access.log | awk '{print $1}'| sort | uniq | wc –l 独立ip是统计不管用户点击那个url只要有浏览,就算一个独立ip

nginx优化之更改用户

1.1 更改nginx默认用户 更改nginx默认用户,一般nginx启动后默认用户是nobody [[email protected] conf]# grep '#user' nginx.conf.default #user  nobody; [[email protected] conf]# 为防止黑客猜到这个web服务的用户,我们需要更改为特殊名字,例如nginx或者特殊点的CC,但这个用户必须是系统里事先存在的,以nginx来做个特殊说明 1.1.1 nginx服务建立新的用户 为ngi

Nginx安装配置实现用户认证、反向代理、隐藏版本号

一.Nginx安装 1.检查并且安装依赖组件           检查安装nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel.pcre.pcre-devel如果没有,则全部装上          # rpm -qa | grep pcre  ##没有任何信息则没安装 2.安装pcre,pcre-devel # tar -zxvf pcre-6.6.9.tar.gz          # cd pcre-6.6.9/ 

Oracle统计用户所有表的行数

DECLARE   CURSOR c1 is select table_name from user_tables;   V_TABLE_NAME user_tables.TABLE_NAME%TYPE;   V_CNT number;   V_SQL varchar2(2000); BEGIN   FOR V_TABLE_NAME in c1 loop      V_SQL := 'select count(1) from ' || V_TABLE_NAME.table_name;      

4.Shell 判断用户的参数

1.Shell 判断用户的参数 系统在执行mkdir命令时会判断用户输入的信息,即判断用户指定的文件夹名称是否已经存在,如果存在则提示报错:反之则自动创建. Shell脚本中的条件测试语法可以判断表达式是否成立,若条件成立则返回数字0,否则便返回其他随机数值. 条件测试语法:的执行格式如图4-16所示.切记,条件表达式两边均应有一个空格 按照测试对象来划分,条件测试语句可以分为4种: 文件测试语句: 逻辑测试语句: 整数值比较语句: 字符串比较语句. 文件测试即使用指定条件来判断文件是否存在或权

nginx通过shell脚本平滑升级版本

1.简介 有时候nginx发布了新BUG或者添加了新的功能时,想要更新的时候服务又不能中断,这时候就要用到nginx的平滑升级了. 该脚本同样适用于添加新扩展,添加新扩展的时候只需要把更新的版本修改为当前版本,更新的时候把需要添加的扩展加上去即可.我这里nginx安装目录为/usr/local/nginx当前系统,阿里云ECS CentOS 7 64位 2.查看nginx版本与编译信息/usr/local/nginx/sbin/nginx -V 注:这里的扩展要记录下来(重要),等下升级的时候用

Shell命令-用户用户组管理之useradd、usermod

文件及内容处理 - useradd.usermod 1. useradd:添加用户 useradd命令的功能说明 useradd 命令用于建立用户帐号.useradd 可用来建立用户帐号.帐号建好之后,再用 passwd 设定帐号的密码.而可用 userdel 删除帐号.使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中. useradd命令的语法格式 useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效