- 博客(48)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 apache mod_perl 防盗链
大体思路是这样的,比如有一个地址:http://www.aa.com/down/1.mp3,不幸搜索引擎或者迅雷扒到了,就无偿为他们奉献流量了。但是假如在http://www.aa.com/down/1.mp3?key=123,key参数每天变化或者几分钟变化一次,在apache服务端校验下这个参数,不正确则显示拒绝访问或者找不到的话,那样防盗链的效果就算达到了把。modp
2009-09-08 10:55:00
1171
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 使用 perl 快速解析 apache log
功能简述统计出日志里一个或多个页面总共访问的次数,比如aa.jsp, bb.jsp这样页面分别多少次。实现简述Apache单个日志文件800M。最初程序使用Python编写,按行来统计,分别使用in(最慢)和index方法去查找,然后使用了正则匹配,程序运行时间从最初的1分50多秒优化到1分10秒左右,参考了qyb博客中提到的gc.disable()
2009-09-08 10:41:00
1027
原创 [图文解说] Virtual Box 通过 NAT(默认) 共享虚拟机中的服务
Virtual Box 是个不错的虚拟机,小巧,功能也齐全。好像有点推销鸟。说正题,上次有个朋友就提到怎么能主机里访问虚拟机里的服务,昨晚实验了下,颇为顺利。记录下。这里利用的是默认的NAT上网,也就是共享主机上网,而不是设置独立的IP。主机:Win XP虚拟:Ubuntu 9.10目的:Win里ssh进Ubuntu,能访问里面提供的服务。主要是通过 VBoxManage
2010-05-15 16:53:00
1171
翻译 [译] MongoDB 入门教程
原文:http://chenxiaoyu.org/blog/archives/242 启动数据库下载 MongoDB, 解压后并启动:$ bin/mongodMongoDB 默认存储数据目录为 /data/db/ (或者 c:/data/db), 当然你也可以修改成不同目录, 只需要指定 –dbpath 参数:$ bin/mongod --dbpath /path/
2010-04-27 23:39:00
1231
原创 Python ConfigParser 与 ConfigObj INI 配置读写顺序
默认的ConfigParser对于选项是按照字母顺序排列的。如下代码:>>> from ConfigParser import ConfigParser>>> cf = ConfigParser()>>> cf.add_section(d)>>> cf.set(d, name, smallfish)>>> cf.add_section(a)>>>
2010-04-19 20:30:00
1721
原创 web.py 数据库操作指南
原文:http://chenxiaoyu.org/blog/archives/226 官网地址:http://webpy.org/web.py是一个小巧灵活的框架,最新稳定版是0.33。这里不介绍web开发部分,介绍下关于数据库的相关操作。很多Pyer一开始都喜欢自己封装数据库操作类,本人亦如此。不过后来通过观摩web.py的源码,发现其数据库操作部分相当紧凑实用。推荐懒
2010-03-19 11:33:00
1253
原创 Python(Stackless) + MongoDB Apache 日志(2G)分析
为何选择Stackless? http://www.stackless.comStackless可以简单的认为是Python一个增强版,最吸引眼球的非“微线程”莫属。微线程是轻量级的线程,与线程相比切换消耗的资源更小,线程内共享数据更加便捷。相比多线程代码更加简洁和可读。此项目是由EVE Online推出,在并发和性能上确实很强劲。安装和Python一样,可以考虑替换原系统Py
2010-03-04 09:56:00
1865
4
原创 PostgreSQL UUID 函数
http://chenxiaoyu.org/blog/archives/209测试环境:PostgreSQL 8.4默认PostgreSQL是木有UUID函数可使用,而不像MySQL提供uuid()函数,不过在contrib里有,只需要导入一下uuid-ossp.sql即可。(PS:注意权限问题,要Pg可读改文件。)导入很简单,下面是win下面测试,其他平台类似该操
2010-02-26 15:15:00
1551
原创 PostgreSQL RPM 安装笔记
测试环境:REHL 5.3PostgreSQL版本:8.4.21. 首先检查下是否已经有PostgreSQL安装程序(俺的机器有pg-libs 8.1,无视之)shell> rpm -qa | grep postgres2. 下载最新的8.4.2RPM安装包,这个FTP速度挺快的。:)shell> wget http://ftp.easynet.be/postgre
2010-02-06 10:30:00
1555
原创 MySQL & PostgreSQL 小命令对比
对比下一些两个数据库常用的操作。MySQL命令行:mysql -uuser -pxxx -h127.0.0.1 databasePostgreSQL命令行:psql -U user -h 127.0.0.1 database操作对比:mysql psqlSHOW DATABASES; /l
2010-02-05 12:40:00
827
原创 emacs windows配置笔记
原文地址:http://chenxiaoyu.org/blog/archives/96最近手痒,看到不少牛x人物都是用emacs,遂在windows下装一个玩玩。下载地址:http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-23.1-bin-i386.zip解压到:D:/emacs-23.1可以看到bin、etc、l
2009-12-10 16:59:00
1493
翻译 使用Git维护你的网站
原文地址: http://chenxiaoyu.org/blog/archives/90简介git是由Linus Torvalds编写的一个开放源码的版本控制系统. 它的主要目标是高度分散, 效率超过其他竞争对手.我就是使用git维护本网站. 我知道git不应该这样的粗重任务的使用, 即每一个开发者维护一份代码拷贝, 但是它工作的很好, 所有我使
2009-12-08 10:22:00
915
原创 tornado.database添加PooledDB连接池功能
tornado.database模块简单包装了下对MySQL的操作,短小精悍。无奈源码中无连接池功能,遂加上了一段DBUtils模块功能。主要修改了reconnect()方法,大致在database.py第86行左右。(tornado 0.2 win版)原代码如下: def reconnect(self): """Closes the exi
2009-12-01 15:40:00
1997
2
原创 Pysvn 程序员指南
原文参见:http://chenxiaoyu.org/blog/archives/75 这是一篇关于pysvn模块的指南.完整和详细的API请参考 pysvn Programmer’s Reference.pysvn是操作Subversion版本控制的Python接口模块. 这个API接口可以管理一个工作副本, 查询档案库, 和同步两个.该API不能创建
2009-11-20 17:35:00
3215
1
原创 Cython参考指南 – 编译
译文地址:http://chenxiaoyu.org/blog/archives/60Cython代码跟Python不一样,必须要编译。编译经过两个阶段:* Cython编译.pyx文件为.c文件* C编译器会把.c文件编译成.so文件(Windows上是.pyd)以下会分节介绍几种方式来建立你的扩展模块。注意: -a 选项,如果使用该选项将
2009-11-19 15:06:00
1315
原创 MySQL Query Profile 简单使用
MySQL Query Profile MySQL 5.0.37 以上开始支持 MySQLQuery Profiler, 可以查询到此 SQL 会执行多少时间, 并看出 CPU/Memory 使用量, 执行过程中 Systemlock, Table lock 花多少时间等等. 详细可以参见官方文档:Using the New MySQL Query Profiler启动
2009-11-04 10:11:00
687
原创 Apache 虚拟主机配置笔记
环境:Linux Apache2.2 (路径 /usr/local/apache)步骤:1. 修改 conf/httpd.conf,找到如下位置,去除 # 注释符# Virtual hostsInclude conf/extra/httpd-vhosts.conf2.修改 conf/extra/httpd-vhosts.conf
2009-11-03 15:00:00
834
1
原创 Java调用linux scp操作
先来回顾下linux下scp命令的用法:[shell $] scp -r /本地目录或文件 user@192.168.0.110:/远程目录这条命令是把本地的目录或者文件拷贝到远程192.168.0.110一个目录下,如果是从远程拷到本地,则反一下ip和目录。-r则是递归目录。更多参见scp --help最近在Java里调用scp,是通过一个JSP页面来触发。为了在调用
2009-10-26 17:00:00
1601
原创 ssh, scp 不输入密码
经常在不同linux机器之间互相scp拷文件,每次总是要输入密码才可行。 通过ssh-keygen生成公钥,在两台机器之间互相建立信任通道即可。 假设本地机器client,远程机器为server。 1. 生成rsa keygen [winter@client winter] $ ssh-keygen -b 1024 -t rsaGener
2009-10-19 17:51:00
768
原创 web.py session 应用
注意: web.py版本必须是0.3以上import webweb.config.debug = Falseurls = ( "/", "index",)app = web.application(urls, locals())session = web.session.Session(app, web.session.DiskStore(sessi
2009-10-14 16:31:00
1337
原创 修改 ModPython 下 PYTHON_EGG_CACHE 报错
环境:Linux Apache Python(mod_python)换了一台新机器,没有配置Mod_Python了,在一些应用里import MySQLdb出现了下面错误:ExtractionError: Cant extract file(s) to egg cacheThe following error occurred while trying to extract file(s) to
2009-09-28 09:59:00
1373
1
翻译 [译]Bottle中文简介
最新文档地址:http://pynotes.appspot.com/static/bottle/index.htm译者: smallfish 原文: http://bottle.paws.de/文档: 简体中文Bottle是一个使用Python语言编写的符合WSGI规范Web框架.它提供根据URL参数转发请求(映射),模板,key/
2009-09-23 16:40:00
1759
翻译 [译]Python Bottle框架文档
Bottle是一个小巧的Python Web开放框架,源码只有一个文件,约34K,不到1000行。这是本人第一次翻译,不好之处请勿调戏。最新文档地址:http://pynotes.appspot.com/static/bottle/docs.htm这份文档会不断更新. 如果在文档里没有找到答案,请在版本跟踪中提出issue.译者: smallfish
2009-09-21 14:06:00
2201
原创 jsp 图形验证码 IllegalStateException 异常
最近用了jsp做了一个简单的图形验证码,产生四个随机字符。使用时候发现后台异常不断。异常日志如下:2009-9-10 13:39:23 org.apache.catalina.core.StandardWrapperValve invoke严重: Servlet.service() for servlet jsp threw exceptionjava.lang.I
2009-09-10 13:56:00
2351
6
原创 python 千分位输出 1,233,232格式
摘抄自邮件列表,我的方法比较土,小数点也没有加进去,locale未尽测试。邮件收录在:http://wiki.woodpecker.org.cn/moin/MiscItems/2009-01-13最新方法:>>> while True:... (s,count) = re.subn(r"(/d)(/d{3})((:?,/d/d/d)*)$",r"/1,
2009-09-08 11:05:00
1666
原创 python set 简单应用
set也是python里一个重要类型,有时候还是蛮好用的。详细文档和说明可以用help(set) 查看其说明和方法。下面来点简单的小例子说明把。>>> x = set(spam)>>> y = set([h,a,m])>>> x, y(set([a, p, s, m]), set([a, h, m]))再来些小应用
2009-09-08 11:04:00
580
原创 python 字符反转
偶然看到论坛有人问python字符串怎么没有反转的方法,是很纳闷。后来找到了几个解决办法,还是很酷的说,记录以分享下。>>> s = "abcdefg" >>> s[::-1]>>> a=list(s) >>> a.reverse() >>> "".join(a) >>> reduce(lambda x,y:y+x,s)
2009-09-08 11:04:00
537
原创 python 单词翻译小工具
附件提供了一个win编译的exe版本,用py2exe编译。linux下直接输入文件名即可。下载文件以及源码请到:http://www.chinaunix.net/index.php?uid=386791&url=http://bbs.chinaunix.net/viewthread.php?tid=1256415 linux编码为utf-8,win编码为gbklin
2009-09-08 11:02:00
770
原创 apache mod_perl实现 url rewrite
相信apache的mod_rewrite模块都很熟悉了,今天这儿换个思路,利用mod_perl来实现下,发现竟然是如此的简单!首先得保证apache已经安装了mod_perl模块,具体安装配置可以看上一篇文章哦。修改下http.conf配置,添加一下内容:PerlTransHandler MyTrans # MyTrans 这个是自己添加的处理模块名具体MyTr
2009-09-08 11:00:00
526
原创 memcached 常用方法笔记
官网地址 http://www.danga.com/memcached/(需要先安装libevent http://www.monkey.org/~provos/libevent/)编译过程略过启动/结束memcached -d -m 10 -u root -l 192.168.0.122 -p 11200
2009-09-08 10:57:00
538
原创 c apache module 开发入门
chinaunix地址:http://www.chinaunix.net/index.php?uid=386791&url=http://bbs.chinaunix.net/viewthread.php?tid=1255594前言: 扩展Apache模块开发网上大部分教程都是围绕Perl语言记性,老外的《Writing Apache Moduleswith Perl and
2009-09-08 10:57:00
732
原创 expect telnet 发送邮件
python通过smtplib链接到smtp.163.com可以正常发送,换perl就不行了。很诡异的事件啊。perl程序大致代码如下:use Net::SMTP;$smtp = Net::SMTP->new(smtp.163.com, Hello => smtp.163.com, Timeout => 120, Debug => 1);
2009-09-08 10:55:00
1171
原创 postgresql 表空间
pgsql允许管理员在文件系统里定义表空间存储位置,这样创建数据库对象时候就可以引用这个表空间了。好处就不用多说了,可以把数据库对象存储到不同的分区上,比如更好的存储之类。默认initdb之后会有两个表空间pg_global和pg_default。查看pgsql当前表空间有哪些可以试试下面:postgres=> SELECT spcname FROM pg_tablespace;
2009-09-08 10:54:00
858
原创 postgresql 常用语句
-- 查看pg数据库用户列表/du -- 数据库列表,所属者以及编码 /l -- 数据库表或者视图等列表 /d -- 表或者视图的结构/d 视图名 /d 表名 -- 连接到该用户名下的数据库 /c 数据库名 用户名 -- 查看pg某配置值
2009-09-08 10:53:00
596
原创 pexpect通过ssh执行远程命令
pexpect是python一个模块,可以通过:easy_install pexpect 来安装。这里主要是用pexpect执行ssh,查看远程uptime和df -h看硬盘状况。#ssh_cmd.py#coding:utf-8import pexpectdef ssh_cmd(ip, user, passwd, cmd):
2009-09-08 10:53:00
1088
原创 windows python pyrex 扩展
在偶的ubuntu里编写pyrex程序编译成so还是挺爽的,用 timeit.Timer 测试性能提升不少,今天在windows也尝试了一番。需要的工具有:- Pyrex http://www.cosc.canterbury.ac.nz/greg.ewing/python/Pyrex/- Dev C++ http://www.bloodshed.net/devcp
2009-09-08 10:52:00
614
原创 postgresql 创建表分区
测试版本:pg 8.3 (ubuntu)在pg里表分区是通过表继承来实现的,一般都是建立一个主表,里面是空,然后每个分区都去继承它。创建表分区步骤如下:1. 创建主表CREATE TABLE users ( uid int not null primary key, name varchar(20));2. 创建分区表(必须继承上面的主表)C
2009-09-08 10:52:00
841
2
原创 mysqldumpslow 慢查询日志分析工具
mysql自带的这个玩意挺好使的,可以对慢查询里的sql进行排序、计算等操作。首先得配置my.cnf:log_slow_queries = /path/slow.log # 定义log位置,注意要有写入的权限具体的使法如下:mysqldumpslow -s c -t 40 /path/slow.log出来的结果是访问次数最多的40个sql,几个参数大概意思如下:
2009-09-08 10:51:00
553
原创 ssh tunnel && memcached
最近一台服务器放进了移动机房,需要访问原电信机房一台Memcached服务器,Memcached服务是以内网形式启动。依靠google大神,搜索出解决思路,在本地起一个SSH链接,通过本地一个端口实现对另外机器的映射或者叫做转发。上周本来已经搞定,本周突发灵异事件,竟然不管了,最后百般尝试,完成结果如下:移动机器IP:220.xxx.xxx.xxx 电信机器IP:155.x
2009-09-08 10:50:00
513
原创 memcached java && python client api 共享
用Python写了一个计划任务,定时更新Memcached中一个key值,写的很happy,几分钟搞定。然后在Java Servlet测试,代码写的也很happy,编译 - 刷新,一气呵成。然后发现值一直是null,再tail日志看看,异常不断:com.danga.MemCached.MemCachedClientMon Jul 20 09:37:04 CST 2009
2009-09-08 10:50:00
706
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人