作者存档

debian初始安装没有killall命令?

2011年08月18日,星期四

debian初始安装没有killall命令?

今天用xen-center安装了 一枚debian-lenny用作公司网站网页加载测试(基于python pyqt webkit)
进入系统发现没有killall命令
search 一下发现:
pageload:~# apt-cache search killall
psmisc – Utilities that use the proc filesystem
sysvinit-utils – System-V-like utilities

应该是psmisc

pageload:~# apt-get install psmisc

bingo 搞定.

Mac 截图快捷键

2011年08月7日,星期日

在Mac上截图其实很简单,但很多人只知道Command-Shift-3和Command-Shift-4,却不知道Mac的截图快捷键其实还有很多增强,具体如下:

1)Command-Shift-3: 将整个屏幕拍下并保存到桌面。
2)Command-Shift-Control-3:将整个屏幕拍下并保存到剪贴板(Clipboard),你可以Command+V直接粘贴到如Photoshop等软件中编辑。
3)Command-Shift-4:将屏幕的一部分拍下并保存到桌面。按下这个组合键后,光标会变为一个十字,你可以拖拉来选取拍摄区域。
4)Command-Shift-Control-4:将屏幕的一部分拍下并保存到剪贴板。
5)Command-Shift-4再按空格键:这时光标会变为一个照相机图标,点击可拍下当前窗口或菜单或Dock以及图标等,只要将照相机图标移动到不同区域(有效区域会显示为浅蓝色)点击。
6)Command-Shift-Control-4再按空格键:将选取的窗口或其他区域的快照保存到剪贴板。

linux 命令行下最大能输入多长命令?

2011年08月4日,星期四

用getconf ARG_MAX 查看

debian lenny :

xu:~$ getconf ARG_MAX
2097152

CentOS 5:

$ getconf ARG_MAX
131072

总之目前来说对我目前的脚本都是够用的了。

IE6,IE7中iframe跨域导致session丢失问题

2011年07月18日,星期一

今天下午遇到的,试了几个浏览器发现只有IE6,IE7 才会出现这个问题,IE8 IE9 firefox chrome都木有这个问题。

问题原因:
因为一个集成网站的问题,在a网站上使用了iframe 引入B网站的内容,但是当时这个时候如果用IE6 和IE7 访问时候就会发现Iframe 居然丢失了session。

在google里面搜索了一段发发现是:IE6/IE7支持的P3P(Platform for Privacy Preferences Project (P3P) specification)协议默认阻止第三方无隐私安全声明的cookie。 firefox 和chrome不存在这个问题,IE8 和IE9 貌似也改了这个问题。

解决办法就是:
在B网站的web服务器输出html时候带上这样的响应头即可:”P3P”,”CP=CAO PSA OUR”
lighttpd的服务器:
server.modules = (“mod_setenv”)
setenv.add-response-header = ( “P3P” => “CP=’CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR’”)

apache的服务器:

Header set P3P ‘CP=”CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”‘

IIS的服务器
增加一个网站http头来解决问题;
管理 工具——〉选择一个网站 ——〉属性——〉http头,增加一个http头
然后输入头名:P3P
输入头内容:CP=CAO PSA OUR

也可以实在在B网页上写上:
可以直接在B网站中写入

<?php
header('P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"')
?>

squid “DNS name lookup tests failed”

2011年07月6日,星期三

“DNS name lookup tests failed”

默认情况下,squid在启动前执行一些DNS查询。这点确保你的DNS服务器可到达,并且运行正确。假如测试失败,可在cache.log或syslog里见到如下消息:

FATAL: ipcache_init: DNS name lookup tests failed

假如你在内网里使用squid,squid可能不能查询到它的标准主机名列表。可使用dns_testnames指令来指定你自己的主机名。只要接受到响应,squid就会认为DNS测试成功。

假如你想完全跳过DNS测试,简单的在启动squid时,使用-D命令行选项:

% squid -D …

用python查询ip138的ip数据

2011年06月30日,星期四

主要采用pycurl库发出查询,下载网页,还有beatifulsoap来解析文档,
之前的测试显示pycurl库要比urlib2节省资源,速度还要快一些,

def showIP(ip):
        myurl = "http://ip138.com/ips.asp?ip="+str(ip)+"&action=2"
        html = StringIO.StringIO()
        c = pycurl.Curl()
        c.setopt(pycurl.URL,myurl)
        c.setopt(pycurl.WRITEFUNCTION,html.write)
        c.setopt(pycurl.FOLLOWLOCATION,1)
        c.setopt(pycurl.MAXREDIRS,5)
        c.setopt(pycurl.TIMEOUT,300)
        c.setopt(pycurl.CONNECTTIMEOUT,60)
		##设置uagent头
        c.setopt(pycurl.USERAGENT,"Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.0")
        c.perform()
        content = html.getvalue()
		###解码然后编码为utf8,ingore参数是为了避免页面中的某些非法字符,导致异常
        content = content.decode('GB2312','ignore').encode('UTF-8')
        #content = content.decode('GB2312').encode('UTF-8')
        soup = BeautifulSoup(content)
        li = soup.find('li')
		###组合为字符串
        shuchu= ip+"/24 "+li.string+" "+li.findNext('li').string
		##输出编码
        print shuchu.encode('UTF-8')

shell下的分割文件,合并文件

2011年06月30日,星期四

之前一直找某一个分割文件工具:
终于找到一款,linux下的,
我现在需求是,我有一个190多万行的文件:
我想分割成一个个小文件 每个一万行

split  -l 10000 chinaip_24.txt
##这样默认是生成x开头的文件 xaa xab,其他系统我不知道至少debian系统上是这样;

split  -l 1000000 chinaip_24.txt china
##按指定前缀名称生成分割后的文件,这样生成chinaaa chinaab 

split -d -l 1000000 chinaip_24.txt chinaip
###-d选项 生产数字文件名文件

关于合并文件,
1. cat

cat aaa bbb >ccc
#这样就把aaa bbb的文件内容合并到一个文件中了

2. paste

paste aaa bbb
####就可以合并2个文件了

python 编码转码问题

2011年06月30日,星期四

最近在收集ip库时候,遇到了一个问题:在抓取某些页面时候总是出现以下错误,

File “showip_ip.py”, line 39, in showIP
content = content.decode(‘GB2312′).encode(‘UTF-8′)
UnicodeDecodeError: ‘gb2312′ codec can’t decode bytes in position 7572-7573: illegal multibyte sequence

最好翻开python文档,最后在http://docs.python.org/howto/unicode.html 找到答案
这个链接给出的示例如下:

>>> unicode('abcdef')
u'abcdef'
>>> s = unicode('abcdef')
>>> type(s)
<type 'unicode'>
>>> unicode('abcdef' + chr(255))
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 6:
                    ordinal not in range(128)

>>> unicode('\x80abc', errors='strict')
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0x80 in position 0:
                    ordinal not in range(128)
>>> unicode('\x80abc', errors='replace')
u'\ufffdabc'
>>> unicode('\x80abc', errors='ignore')
u'abc'

unicode 函数有这个选项变量,那decode 和encode 应该也有吧,看这个情况应该我的程序在处理过程遇到非法字符,所以导致异常。
果然,在http://docs.python.org/release/2.6.7/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange找到了相应的decode函数的用法
The default is ‘strict’, meaning that encoding errors raise UnicodeError.
默认的是strict,遇到非法字符就抛出异常。

还有其他选项如下:
Value Meaning
‘strict’ Raise UnicodeError (or a subclass); this is the default.
‘ignore’ Ignore the character and continue with the next.
‘replace’ Replace with a suitable replacement character; Python will use the official U+FFFD REPLACEMENT CHARACTER for the built-in Unicode codecs on decoding and ‘?’ on encoding.
‘xmlcharrefreplace’ Replace with the appropriate XML character reference (only for encoding).
‘backslashreplace’ Replace with backslashed escape sequences (only for encoding).

选择ignore选项,将会忽略非法字符。

content = content.decode('GB2312','ignore').encode('UTF-8')

再次执行,果然不在报错。

按照ip地址排序

2011年06月27日,星期一

有一个这样的文本文件,内容如下:
1.0.2.0/24 本站主数据:福建省 电信 参考数据一:APNIC
1.0.50.0/24 本站主数据:广东省 电信 参考数据一:APNIC
1.0.52.0/24 本站主数据:广东省 电信 参考数据一:APNIC
1.0.51.0/24 本站主数据:广东省 电信 参考数据一:APNIC
1.0.53.0/24 本站主数据:广东省 电信 参考数据一:APNIC
1.0.54.0/24 本站主数据:广东省 电信 参考数据一:APNIC
1.0.56.0/24 本站主数据:广东省 电信 参考数据一:APNIC

需要安装ip地址排序:
shell命令:

sort -n -t. +0 -1 +1 -2 +2 -3 +3 -4 filename.txt

在襄阳

2011年06月20日,星期一

在襄阳,
有种可怜叫遭业;
有种美女叫俩娃;
有种顺便叫就声儿;
有种三轮叫麻木儿;
有种废话叫嚼舌,
有种迷糊叫癔症,
有种突然叫冷不疼儿里,
有种强悍叫黑爆,
有种糊涂叫丫夹,
有种游戏叫打PIAPIA,
有种牛B叫抛,
有种惊叹叫——乖超啊!
有种瞎说叫日百扯;
有种不骗你叫乖乖彪;
有种玩具叫满满儿;
有种旁边叫挨跟儿;
有种害人叫考兑人;
有种干什么叫爪子;
有种瞎说叫日百扯;
有种开玩笑叫diang;
有种大声说话叫斜或;
有种挑衅叫咋番儿;
有种距离叫不沾闲