Feeds

514 items (513 unread) in 13 feeds

Firefox CFBU成员 Firefox CFBU成员

Ryandol - I' lI haI (1 unread)

  • Permalink for '在Linux下查看网站访问记录'

    在Linux下查看网站访问记录

    Posted: June 24, 2008, 2:47am PDT by Ryan Lee
    LBL_TAG_TAGSLinux  

    尝试使用Linux的人越来越多了,但很多都停留在了上网+多媒体播放等基础应用上。说实话,就那些用途完全体验不到Linux会带来的高效率这条优点。就我而言,用Linux shell命令来帮助我查看这个博客的访问记录是个非常不错的选择(新手,刚开始研究,挺好玩的)。也许你会说,有google analytics、yahoo stats、51.la、cnzz还有最近比较流行的clicki等访问记录统计的东西帮我做了,不幸的是这些都被我写进了firefox的adblock plus,你不会从它们那里知道我曾访问过你的网站。Why?影响访问速度,中文博客群使用的虚拟主机普遍就慢,有时候firefox的状态栏告诉我,Looking for www.51.la…最糟的时候这一个look就要好几秒钟,火大!…也有虚拟主机商还会提供awstats或webalizer,但那个跟本不全…如果你还喜欢SEO的话,可能还会关注googlebot和baiduspider访问你网站的频率,计算从clawing到indexing的时间、用户通过搜索什么关键词来访…如果要维护网站,还要去关注访问记录里面的404都是怎么来的…最主要的原因:我喜欢看原始记录。

    有的虚拟主机商会以天为单位把访问记录分割打包放在一个目录下,你每天去下载就是了,不大,看起来也不麻烦。我目前这个虚拟主机虽然提供实时的访问记录,但它每个月才分割一次,从6月1日到现在一共有13万余条记录,看这个东西要死人的…于是我写了个简单的脚本:

    #!/bin/sh
    #以续传的方式下载访问记录ilihai.log到/public_html/log目录下
    wget -c ftp://帐号:密码@ftp.ilihai.com/路径/ilihai.log ~/public_html/log

    #把googlebot的访问记录提取出来并输出到文本gbot
    grep ‘Googlebot’ ilihai.log > gbot
    #提取baiduspider
    grep ‘Baiduspider’ ilihai.log > bbot

    #把从google过来的搜索记录提取出来并输出到文本gsearch(实际还会把来自yahoo.com的搜索也提取过去,不过非常少,忽略)
    grep ‘/search?’ ilihai.log > gsearch
    #提取来自百度的搜索记录(还会把来自yahoo.cn的搜索也提取过去)
    grep ‘/s?’ ilihai.log > bsearch

    #把所有http 404记录提取出来并输出到文本404
    grep ‘ 404 ‘ ilihai.log > 404

    #同理,还可以写出图片盗链的、从外部链接访问过来的都可以用linux shell命令写出来,我这里就不举例了。

    把上面的文字保存为“log.sh”文件,存到“~/public_html/log”文件夹下,并“chmod +x log.sh”,在终端下输入“./log.sh”。运行完这个shell脚本以后会生成404、bbot、bs、gbot、gs这几个文本文件,用vim挨个看好了。用vim的好处是它的记忆功能:比如404这个文本文件有54438行,你今天看到第54438行,明天再次执行这个脚本过后,404文件可能会变成60000+行。再用vim打开404文件,光标会停留在594438行上,往下翻页就是最近一天的http 404记录。如果每天运行一次这个脚本,工作量将是非常小的。还有一个好处,Gnome终端中显示的链接是可以点的,比如查看gsearch文件中某行:

    • 121.229.99.117 - - [24/Jun/2008:04:48:27 -0700] “GET /cancel-credit-card.html [HTTP] 200 25311 “ [www.google.cn] “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQDownload 1.7)”

    把鼠标移动到后面 [www.google.c…上,右键单击,会出来菜单,选择“打开链接”,你就可以到firefox中去看这个用户是通过搜索什么关键词过来的。目前我还在研究怎么把%E4%B8这些抓出来并转换成中文的方法,如果能行那就更方便了。]

    目前最有用的是404的部分,比如下面的这种SOB,我直接把它的IP写进.htaccess文件ban掉!:

    219.232.233.101 - - [04/Jun/2008:08:01:00 -0700] “GET /bbs/data/dvbbs8.mdb [HTTP] 404 10554 “-” “-”
    219.232.233.101 - - [04/Jun/2008:08:01:01 -0700] “GET /data/dvbbs8.mdb [HTTP] 404 10512 “-” “-”
    219.232.233.101 - - [04/Jun/2008:08:01:03 -0700] “GET /database/PowerEasy2006.mdb [HTTP] 404 10533 “-” “-”

    还有那种乱发spam comments的IP和UA,都挨个被我从网站访问记录里面提取出来ban掉,现在的每天的spam comments已经锐减到个位数。Blogger们,不要浪费了你们手中的Linux,这个玩意儿越研究越有意思。