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[......]
