Nginx的队列

队列数据结构:
struct ngx_queue_s {
ngx_queue_t *prev;
ngx_queue_t *next;
};
队列的其它操作没有什么,取值比较有意思
#define ngx_queue_data(q, type, link) \
(type *) ((u_char *) q – offsetof(type, link))
根据link在type中的偏移计算整个结构的内存地址

Python执行命令行获取输出

#!/usr/bin/env python
#
# $id: refresh.py,v 1.0.0 2009/01/05 15:32:48 master Exp $
# Copyright (C) 2009 Yunlong Wen ([email protected])
#
# Last Modified: 2009/01/05 16:19:12
 
import fileinput
import os
from os import curdir, sep
 
class Shell:
 
    def exec(self, cmdline):
        out = os.popen( cmdline, 'r')
        txt = out.read()
        ret = out.close()
        if ret:
            raise RuntimeError, '%s failed with exit code %d' % (cmdline, ret)
	    return '%s failed with exit code %d' % (cmdline, ret)
        else:
            return  txt

X86 汇编指令详解

MOVE

数据传送指令 MOV

格式: MOV OPRD1,OPRD2

功能: 本指令将一个源操作数送到目的操作数中,即OPRD1<–OPRD2.

说明:

1. OPRD1 为目的操作数,可以是寄存器、存储器、累加器.

OPRD2 为源操作数,可以是寄存器、存储器、累加器和立即数.

2. MOV 指令以分为以下四种情况:

<1> 寄存器与寄存器之间的数据传送指令

<2> 立即数到通用寄存器数据传送指令

<3> 寄存器与存储器之间的数据传送指令

<4> 立即数到存储器的数据传送

3. 本指令不影响状态标志位[......]

阅读全文

简简单单

简简单单做人,简简单单生活。用心去对待身边每一个真心的朋友,不管明天我们在那里,都不会忘记曾经一起的记忆。生活总是这样不停的聚了散了,能留下的都只在心里,真心的期盼身边每一个朋友过得开心幸福。

开发目录清理脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/sh
 
function usage() {
    echo "usage: <source dir>"
}
 
if [ $ARGC != 1 ] || [ -d $1 ];then
    usage
    exit
fi
 
DIR=$1
 
for i in `find $DIR -type f -name '*.log'`;do rm -f $i;done
for i in `find $DIR -type f -name '*.o'`;do rm -f $i;done
for i in `find $DIR -type f -name '*.a'`;do rm -f $i;done
for i in `find $DIR -type f -perm +100`;do rm $i;done

目录备份脚本

备份执行目录到 BACKUP_DIR, 压缩文件名为 目录名+’_'+时间+’_'+随机数.tar.gz

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/sh
PWD=`pwd`
ARGC=$#
BDIR=$BACKUP_DIR
 
function usage() {
    echo "usage: <source dir> <backup dir>"
}
 
if [ $ARGC != 1 ] && [ $ARGC != 2 ];then
    usage
    exit
fi
 
if [ $ARGC == 1 ] && [ "$BDIR" == '' ];then
    usage
    exit
fi
 
if [ $ARGC == 2 ];then
    BDIR=$2
fi
 
if ! [ -d $BDIR ];then
    echo "backup dir '$2' is not found"
    usage
    exit
fi
 
if ! [ -d $1 ];then
    echo "source dir '$1' is not found"
    usage
    exit
fi
 
LAST=`echo $BDIR | awk -F/ '{print $(NF)}'`
EXT=`date +'%Y%m%d%H%M%S-%s'`
NAME=`echo $1 | awk -F/ '{print $(NF)}'`
if [ "$NAME" == '' ];then
    NAME=`echo $1 | awk -F/ '{print $(NF-1)}'`
fi
 
if [ "$LAST" == '' ];then
    FILE="$BDIR$NAME-$EXT.tar.gz"
else
    FILE="$BDIR/$NAME-$EXT.tar.gz"
fi
 
cd $1
cd ..
 
tar -cvzf $FILE ./$NAME
 
echo ""
echo "backup $1 to $FILE success"

IPV6地址类型

IN6_IS_ADDR_UNSPECIFIED //未指定地址
IN6_IS_ADDR_LOOPBACK //环回地址
IN6_IS_ADDR_LINKLOCAL //单播链路本地地址
IN6_IS_ADDR_SITELOCAL //单播站点本地地址
IN6_IS_ADDR_V4MAPPED //映射的IPv4地址
IN6_IS_ADDR_V4COMPAT //IPv4兼容地址
IN6_IS_ADDR_MC_NODELOCAL //组播节点本地地址
IN6_IS_ADDR_MC_LINKLOCAL //组播链路本地地址
IN6_IS_ADDR_MC_SITELOCAL //[......]

阅读全文

根据UDP数据包不可达的ICMP回应追踪网络路由

在发送UDP数据包(保证UDP端口在目标没有监听)的之前递增的设置TTL,UDP途径的路由将TTL减1,当TTL为0时或目标服务器UDP端口没有监听,路由向UDP包发送方返回一个type=11(请求的服务或网络不可达)的ICMP回应包。[......]

阅读全文

Debian6 国内比较快的源

deb http://mirrors.163.com/debian/ squeeze main contrib non-free

deb-src http://mirrors.163.com/debian squeeze main contrib non-free

deb http://ftp.cn.debian.org/debian-backports squeeze-backports main

deb-src http://ftp.cn.debian.org/debian-backports squeeze-backports main

deb http://mi[......]

阅读全文

尘埃

我只是一粒尘埃,努力的沉浮在你的身边,等待着某个阴天,阳光穿过窗棂,好让我装点你的世界,也许你从来不曾留意,可这就是我那一世的修行。