1 概念
PV:页面访问量,即PageView,用户每次对网站的访问均被记录,用户对同一页面的多次访问,访问量累计。
UV:独立访问用户数:即UniqueVisitor,访问网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
2 统计uv测试
'''
create 2018/7/4
version 1.0
auth jabbok
info get the uv_number from nginx log and insert into mysql(monitor.uv)
'''
import pymysql
import subprocess
import time
def insert(mdate,num):
conn = pymysql.connect("127.0.0.1","user","passeord","database")
cursor = conn.cursor()
sql = """
insert into uv (id,vistors) VALUES (%d,%d)
""" %(mdate,num)
try:
cursor.execute(sql)
conn.commit()
return 0
except:
conn.rollback()
return 1
if __name__ == "__main__":
mdate = int(time.strftime('%Y%m%d',time.localtime(time.time())))
cmd = "cat /var/log/nginx/access.log-%d | awk '{print $1}' | sort -r | uniq -c | wc -l > /home/scripts/uv.info" %(mdate)
print(cmd)
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
time.sleep(3)
with open('uv.info') as obj:
num = int(obj.readlines()[0])
insert(mdate,num)
[root@iZbp1ezumclop9223l31okZ scripts]# crontab -l 10 10 * * * cd /home/scripts;/usr/bin/python uv_monitor.py 1>a1 2>b1
MariaDB [monitor]> select * from uv; +----------+---------+ | id | vistors | +----------+---------+ | 20180704 | xx| | 20180705 | xx| +----------+---------+