生命之中的最大错误在于:终日担心犯错误。— 爱尔伯特·哈伯德 (Elbert Hubbard 1856-1915),《笔记》
分页: 1/214 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]

用awstats分析服务器流量

[不指定 2009/07/01 23:05 | by hqlulu ]
为什么要用awstats?

1 你需要知道服务器流量都怎么导致的
2 你想查处莫名其妙的流量

awstats会给你很多网页访问统计系统无法告诉你的问题:流量分配,你不需要知道,那就不用它。

怎么做搭建?

下载安装awstats即可,我这里就不重复了,参考文章附录的参考资料。

Nginx怎么记录日志?

Nginx默认的日志格式就是awstats需要的,所以你不需要重新定义即可使用。
加buffer参数估计可以对日志效率有提高。
server {
  server_name  www.aslibra.com;
  location / { proxy_pass http://backend; }
  access_log /Data/logs/access.www.aslibra.com.log combined  buffer=32k;
}


Nginx的日志切割脚本

别人写的脚本都太简单,不太适应,自己重新整理一下,合用的朋友可以借鉴一下

nginx_log_cut.sh
#!/bin/sh

#日志最小记录
Min_Row=50
Log_Dir=/Data/logs
Nginx_Dir=/Data/apps/nginx
#你的日志格式
Date_Dir="/Data/logs/date/"`date +%Y/%m/%d/%H -d "1 hours ago" `

echo ""
echo "=== "`date`" ==="
echo "Date_Dir: $Date_Dir"
if [ ! -d $Date_Dir ];then
        mkdir -p $Date_Dir
fi

#你的所有域名日志
Logs="www.aslibra.com\
test.aslibra.com"

#注意,0.7才支持 -s 参数,否则你需要用 kill -USR1 方式
#把buffer都写入文件
$Nginx_Dir/sbin/nginx -s reopen

for domain in $Logs;do
        if [ -f $Log_Dir/access.$domain.log ];then
                Row=`wc -l $Log_Dir/access.$domain.log | awk '{print $1}'`
                if [ $Row -gt $Min_Row ];then
                        if [ -f $Date_Dir/$domain.log ];then
                                echo "Append: "$Log_Dir/access.$domain.log
                                cat $Log_Dir/access.$domain.log >> $Date_Dir/$domain.log
                                rm -f $Log_Dir/access.$domain.log
                        else
                                echo "Move: "$Log_Dir/access.$domain.log
                                mv $Log_Dir/access.$domain.log $Date_Dir/$domain.log
                        fi
                else
                        echo "Delete(less then $Min_Row Rows): "$Log_Dir/access.$domain.log
                        rm -f $Log_Dir/access.$domain.log
                fi
        fi
done

#重开日志
$Nginx_Dir/sbin/nginx -s reopen


加入计划任务即可

0 * * * * root /Data/scripts/nginx_log_cut.sh >>/Data/logs/log_cut.log


配置awstats的配置文件

其它就不说了,我这里的脚本是按小时切割的,所以说一下格式:

LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.aslibra.com.log"


使用实例

发现了一个网页文件存取次数最多,可网页受访却没有那么多,后来发现是有一个域名设置302跳转到此而导致的。
发现异常流量,可以看到awstats里面的流量比较大的ip,可以确认了那可以用iptables封禁异常的ip。
发现404错误,自己调整好。
Tags: ,

shell笔记_1

[不指定 2009/07/01 00:13 | by hqlulu ]
1 什么是shell

shell在系统中的位置: 用户->应用->shell->内核->硬件
shell是和内核亲密接触的,提供和内核之间的接口,可以写出功能很强大的脚本文件

2 有哪些类型

shell有很多版本:sh -> csh -> ksh -> bash -> tcsh ...
一般在 /bin/下
你要用哪个shell执行程序,则 /bin/sh file 或者 /bin/bash file
用当前默认shell执行可以这样 . file
或者你可以这样 /bin/bash < test.sh
shell都是读入程序代码执行的,在可执行脚本第一行可以指定执行的shell

3 程序参数

./test.sh a b c (abc就是参数)
内部可以获取参数情况:
$# 参数个数
$? 最后命令的完成码或者内部执行的shell返回值
$0 shell程序
$* 所有参数组成的字符串
$N 第N个参数

4 赋值

a=b;a="b c";a="b $HOME";a='b $HOME';a="${HOME}W"
let "j=i*5+1" 等同 ((j=i*5+1))

5 输入输出


[root@localhost ~]# echo -n "your Name:";read myname;echo "Your name is "$myname
your Name:aslibra.com
Your name is aslibra.com


echo "string">/tmp/a.txt
program >/dev/null 2>&1
/bin/bash < file
program >> log.txt
program | sort | uniq | wc -l >> log.txt

输出有两个类型,系统错误2和标准输出1
a文件不存在,cat会产生系统错误为2,2>&1可以转到标准输出

做一个示例脚本来说明问题,产生标准输出和错误输出(中文为注释):

[root@aslibra ~]# cat test.sh
echo hello
echo -n `cat a`
[root@aslibra ~]# ./test.sh
hello
cat: a: No such file or directory
#第一行正常输出,第二行没有a文件,产生错误输出
[root@aslibra ~]# ./test.sh >output
cat: a: No such file or directory
#输出重定向到文件,也就不会在界面看到标准输出
[root@aslibra ~]# cat output
hello
#标准输出在文件里面
[root@aslibra ~]# ./test.sh >output 2>&1
#把错误输出输出到标准输出
[root@aslibra ~]# cat output
hello
cat: a: No such file or directory
#两个都在output文件里面了
[root@aslibra ~]# echo>output
#清空output文件
[root@aslibra ~]# ./test.sh >output 1>&2
hello
cat: a: No such file or directory
#把标准输出转到错误输出
[root@aslibra ~]# cat output
[root@aslibra ~]#
#这样output文件没有任何内容
Tags: ,

理解正向代理和反向代理

[不指定 2009/06/30 00:30 | by hqlulu ]
正向代理和反向代理是forward/reverse proxy的意思,在代理功能上来讲,有一点不太一样。

举个例子:
你要去租房,你找房屋中介找房子,房屋中介找房屋的全权代理人要房子,房屋的全权代理人是由户主委托的。

这里有四个角色:
你=client
房屋中介=forword proxy
代理人=reverse proxy
户主=server

客户端访问网络如果需要指定某个代理服务器为你去获取内容,那就是正向代理
而服务器隐藏在代理服务器后面,让代理服务器作为冲锋陷阵的,那这个代理服务器就是反向代理

而squid是一个 forword/reverse proxy,两个功能兼备,一般可以作为局域网的上网缓存,此时作为正向代理。
一般服务器会让squid作为前端,那就是充当反向代理,反向代理有很多软件都可以,比如nginx、lighttpd,但他们两个一般做不了正向代理。
Tags: ,

X200安装XP小记

[不指定 2009/06/29 23:37 | by hqlulu ]
Thinkpad和最近的很多新机器要安装XP似乎都可能遇到问题,就是安装XP都会出错,在于SATA盘的参数,需要设置为兼容模式,在BIOS里面设置过才能继续,是因为没有SATA的驱动?

小记安装过程:

1 先处理硬盘的参数为兼容模式
2 设置用USB的光驱启动,尝试过普通分区工具似乎不行,调整不了分区,提示出错
3 我进入windows PE,利用里面菜单的磁盘管理软件删掉所有分区,自行分区
4 用普通XP安装盘安装系统
5 安装网卡驱动
6 安装Microsoft .NET Framework version 2.0,因为后面的软件需要
7 安装ThinkVantage System Update系统
8 打开它就可以自动更新系统的驱动,这样就不用一个一个下载了
9 发现都差不多处理完了,还有几个未知设备,该死的音频设备没有
10 单独下载音频设备,安装提示说没有找到相应的设备,该死的东西
11 细看音频的安装说明:

引用
在安装声卡驱动前,需先安装Microsoft .NET Framework 3.0或更高版本;
且需要安装 Q888111 声卡补丁程序。请访问以下链接进行下载:
http://www-307.ibm.com/pc/support/site.wss/document.do?sitestyle=lenovo&lndocid=MIGR-65456
(访问以上链接下载第五个,文件 名:kb888111xp2chs.exe)


12 失望中,Thinkpad居然会有这样的问题
13 下载3.0和相应的文件很快,但3.0安装很慢,还需要网络下载
14 安装完并且打补丁,安装好声卡
15 安装杀毒软件,更新病毒库
16 调整我的文档位置
17 升级BIOS似乎失败,因为走开了,回来看到黑屏,似乎死机了,重启后正常
19 调整交换文件到D盘
20 矮人DOS工具做了个备份
Tags: , ,
服务器在收到浏览器请求的时候,可能会有不同的header信息,我们做个测试。

做个简单的php文件,打印出接受到的header信息:
<?php
foreach($_SERVER as $k=>$v){
  if(substr($k,0,5)=='HTTP_')echo "[$k] => $v\n";
}
?>

注:php接受到信息都在 $_SERVER[HTTP_xxxxx] 变量里。

IE访问

[HTTP_ACCEPT] => image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/msword, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/x-silverlight, application/x-shockwave-flash, */*
[HTTP_ACCEPT_LANGUAGE] => zh-cn
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_USER_AGENT] => Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; CIBA)
[HTTP_HOST] => www.aslibra.com
[HTTP_CONNECTION] => Keep-Alive

google浏览器

[HTTP_HOST] => www.aslibra.com
[HTTP_CONNECTION] => keep-alive
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.33 Safari/530.5
[HTTP_ACCEPT] => application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate,bzip2,sdch
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8
[HTTP_ACCEPT_CHARSET] => UTF-8,*;q=0.5

firefox

[HTTP_HOST] => www.aslibra.com
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => zh-cn,zh;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip,deflate
[HTTP_ACCEPT_CHARSET] => gb2312,utf-8;q=0.7,*;q=0.7
[HTTP_KEEP_ALIVE] => 300
[HTTP_CONNECTION] => keep-alive

file_get_contents

[HTTP_HOST] => www.aslibra.com

wget

[HTTP_USER_AGENT] => Wget/1.9+cvs-stable (Red Hat modified)
[HTTP_HOST] => www.aslibra.com
[HTTP_ACCEPT] => */*
[HTTP_CONNECTION] => Keep-Alive

curl

[HTTP_USER_AGENT] => curl/7.12.1 (i386-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
[HTTP_HOST] => www.aslibra.com
[HTTP_PRAGMA] => no-cache
[HTTP_ACCEPT] => */*

curl访问经过squid代理
( curl http://www.aslibra.com/ -x 127.0.0.1:3128 )

[HTTP_USER_AGENT] => curl/7.12.1 (i386-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
[HTTP_HOST] => www.aslibra.com
[HTTP_PRAGMA] => no-cache
[HTTP_ACCEPT] => */*
[HTTP_VIA] => 1.1 cache.aslibra.com:3128 (squid/2.5.STABLE14)
[HTTP_X_FORWARDED_FOR] => 127.0.0.1
[HTTP_CACHE_CONTROL] => max-age=259200
[HTTP_CONNECTION] => keep-alive

我们可以看出来,每个方式都有很大的不同,一般服务器可以通过HTTP_USER_AGENT做出不同的限制。
要做欺骗行为,那也可以调整header信息达到效果。
一般浏览器会发出 [HTTP_ACCEPT_ENCODING] => gzip,deflate 表示可以接受代码压缩
Tags: , ,

[转] 领悟~

[不指定 2009/06/28 10:31 | by hqlulu ]
  1、父子二人经过五星级饭店门口,看到一辆十分豪华的进口轿车。儿子不屑地对他的父亲说:“坐这种车的人,肚子里一定没有学问!”父亲则轻描淡写地回答:“说这种话的人,口袋里一定没有钱!”
  (注:你对事情的看法,是不是也反映出你内心真正的态度?)

  2、晚饭后,母亲和女儿一块儿洗碗盘,父亲和儿子在客厅看电视。突然,厨房里传来打破盘子的响声,然后一片沉寂。是儿子望着他父亲,说道:“一定是妈妈打破的。”“你怎么知道?”“她没有骂人。”
  (注:我们习惯以不同的标准来看人看己,以致往往是责人以严,待己以宽。)

  3、有两个台湾观光团到日本伊豆半岛旅游,路况很坏,到处都是坑洞。其中一位导游连声抱歉,说路面简直像麻子一样。说而另一个导游却诗意盎然地对游客说:诸位先生女士,我们现在走的这条道路,正是赫赫有名的伊豆迷人酒窝大道。”
  (注:虽是同样的情况,然而不同的意念,就会产生不同的态度。思想是何等奇妙的事,如何去想,决定权在你。)

  4、同样是小学三年级的学生,在作文中说他们将来的志愿是当小丑。中国的老师斥之为:“胸无大志,孺子不可教也!”带外国的老师则会说:“愿你把欢笑带给全世界!”
  (注:身为长辈的我们,不但容易要求多于鼓励,更狭窄的界定了成功的定义。)
分页: 1/214 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]