google了下,没有找到如何通过apache日志计算出PV数和UV数,在知乎上提问了个,等待高人解答吧。

—–

等了一下午,知乎上也木有人能给出合理的算法,chinaunix上也木有,stackoverflow.com上也木有,自己找时间看一下awstats吧,看看能不能找到答案。

—-

来公布答案了~~

查询了awstats的文档说明,http://awstats.sourceforge.net/docs/awstats_glossary.html 这里

Glossary

Unique Visitor:

A unique visitor is a person or computer (host) that has made at least 1 hit on 1 page of your web site during the current period shown by the report. If this user makes several visits during this period, it is counted only once. Visitors are tracked by IP address, so if multiple users are accessing your site from the same IP (such as a home or office network), they will be counted as a single unique visitor.

The period shown by AWStats reports is by default the current month.

However if you use AWStats as a CGI you can click on the “year” link to have a report for all the year. In such a report, period is a full year, so Unique Visitors are number of hosts that have made at least 1 hit on 1 page of your web site during the year.

awstats中, unique visitor 是根据IP来计算的,所以awstats中统计的UV值,即是IP值。

webtrends中, 也有对UV的统计,不过webtrends也是有JS统计代码的,所以,它的统计原理跟大部分统计代码都一样,通过JS获取客户端的cookie来计算UV值。

附一段webtrends的统计代码,为了避嫌,把敏感信息改掉了,大家看看就行了:

查看并询问了一些关于Google Analytics计算UV数的算法,记录如下(感谢 yeshu http://www.wainsight.com):

Google Analytics对于独立访客(UV)的计算,是基于访客浏览器中cookie来确定的,当访客第一次(或cookie丢失后)访问添加GATC的代码时,便会创建一个唯一的cookie(即一个UV),cookie中utma变量记录了访客ID、访问次数、访问时间等信息,UV数以此累加。当访客丢失cookie或更换浏览器重新访问网站,都将会被认为新访客,而创建一个cookie,记录为一个新的UV。

.

以下内容也是一些关于apache日志分析的东东,记录下来。

1.什么是UV?

UV是unique visitor的简写,是指独立访客,是以实际访问的电脑计数。

2.什么是IP?

IP是国际互联网协议(Internet Protocol)的简称,是通过网络间信息地址定位具体计算机的方式之一。

3.UV和IP的概念有什么区别?

对于IP来说,它在同一级别的网络(例如某个局域网、社区网、教学楼网或者INTERNET)范围内是唯一的,同一局域网内的所有电脑都只有一个共同ip。

举例来说,我在一个局域网里,对外的IP是219.129.170.111,那么跟我同一局域网里的所有电脑都是这个IP,也就是说假如整个局域网的电脑都访问您的网站的话,在24小时内也只计算一个IP,所以相对UV来说不是很精确。

而UV跟IP稍有不同,UV是访问你的网站的每一台电脑客户端。现在很多朋友用的网络都是局域网,引入了UV后,就能更精确的统计。

总结:

UV的统计数比IP更为准确,能够准确的计数每一台访问电脑,而IP把同一局域内的所有电脑视为一个。

(PS:UV计数会涉及COOKIE。)

 

阅读全文

i386和i686

现在所有的intel 32位体系(包括AMD等兼容CPU)都叫i386体系,包括P4。、i686仍然属于i386体系,不过对CPU(相对于386)的特性作了指令优化。GNU/Linux分为alpha、PowerPC、Sun等各个不同版本,所有从Intel386-P4都用i386版本,但i386版本中有几个内核(i486,i486,i586,i686),安装时安装程序检测到你得CPU级别后,自动为你安装相应内核。

与cpu的指令集有关.I代表与intel的指令集兼容,后面的数字是指cpu的分类。

因为intel的cpu经过这么久的发展,不断的更新,产生从8086,8088,80286,80386,80486,奔腾(586),奔腾二代(686),奔腾三代(686)…cpu的每次换代,都增加了一些新的指令集,但都向后兼容(就是说后面的CPU都能完全使用前面的CPU的指令集)。而软件包为了能发挥好cpu的全部性能,就加入cpu相对应能指行的指令。因此就产生了各种不同的软件包。所以,i686的软件包能在奔腾二代以上的cpu上执行,但基本不能在此之先的cpu如486上执行。而i386的软件包既可在i386的电脑上执行,也可在后面所有的cpu上执行(如奔三、奔四,但不能发挥cpu的最佳性能。)

i686指的是Pentium Pro以及此后的Intel IA32 CPU,也就是平常我们所说的P6系列处理器。

i386不用说了,泛指80386以后的。

阅读全文

首先下载PHP函数列表文件,将该文件保存在目录 /etc/vim/下:

也可以自己去选择版本下载:http://svn.php.net/viewvc/phpdoc/doc-base/trunk/funclist.txt

我这里选的是当前最新的。

下载后改名为 php_funclist.txt,名字自己起,一会用的时候记得就行。

然后修改vimrc文件,一般都在刚才的目录下 /etc/vim/

然后保存退出,再进入vim编辑的时候,按下 (control+p)或者 ,就可以出现php的自动补全啦。

阅读全文

使用free/top查看内存占用的时候,吓了一大跳,机器4GB的内存,显示free空闲的内存只有300多M,查看了下进程,也没有发现占用大内存的应用啊。

查了些资料,分享给大家。

其实原理用一句话就可以说明白:

就是

查看结果中used已使用的内存表示总计分配给缓存(包含buffers 与cache )使用的数量,但其中可能部分缓存并未实际使用。

阅读全文

我们一般使用“date -s”命令来修改系统时间。首先需要su切换到root操作用户模式,然后分两步操作.

比如将系统时间设定成2012年2月11日的命令如下:

  

  接着将系统时间设定成上午10点52分30秒的命令如下:

  

也可以用以下两个命令来写

阅读全文

记住几个bash快捷键,可以极高的提高工作效率~~

下面开始了~~

Ctrl-A 用于将光标定位到本行最前面,相当于编辑器中用HOME键

Ctrl-E 即将光标移动到本行末尾,相当于End键

Ctrl-B 用于将光标向左移动一格,相当于左箭头键

Ctrl-F 用于将光标向右移动一格,相当于右箭头键

Ctrl-D 即删除光标所在处的字符,相当于Del键

Ctrl-K 用于删除从光标处开始到结尾处的所有字符

Ctrl-L 清屏,相当于clear命令

Ctrl-R 进入历史命令查找状态,然后你输入几个关键字符,就可以找到你使用过的命令

阅读全文

作者的图片

DigDeeply

Technology Stack: Golang/PHP/Openresty, and so on…

Web Development Engineer

Beijing China