在CentOS6.2下用virtualenv分别创建python2.7.6和python3.3.2的应用

本文主要内容参考自:

http://toomuchdata.com/2012/06/25/how-to-install-python-2-7-3-on-centos-6-2/#comment-5691

使用Python,一个绕不过去的问题,就是其版本繁多的问题。首先是版本选择问题,这个不在我们讨论的范围之内,官网上在显眼的位置做了一些说明和建议:Python2 or Python3。

这里我们假设知道自己该选哪个或哪几个版本了。这里就会遇到第二个问题,python在linux中属于基础组件,各发行版会默认安装一个python,例如CentOS5.5中的是2.4.3,而CentOS6.2中是2.6.6.

以CentOS6.2为例,在/usr/bin目录下有一个python和一个python2.6.这两者有什么区别呢:

[root@vps1 ~]# ls -l /usr/bin/python
-rwxr-xr-x 2 root root 3592 Dec 7 2011 /usr/bin/python [root@vps1 ~]# ls -l /usr/bin/python2.6 -rwxr-xr-x 2 root root 3592 Dec 7 2011 /usr/bin/python2.6

推倒重做

这几个月一直在做一个基于FastDFS的分布式存储系统,从前期调研、测试到后面的设计、编码、测试等。其中设计部分,每个环节都和当时带我的一位哥们讨论过,时而愁眉不展,百思不得其解;时而一拍脑袋,找到一个很巧妙的设计方法。已经有两个月没有什么大的改动了,上周实在无聊,就把我当时赶工写的,现在看来不堪入目的代码进行了重构。

一切看起来很美好的样子,只是看起来。

部门的开发主要分为后台组和系统组,我属于系统组,主要职责是做底层linux c方面,譬如nginx模块开发,存储系统开发等;后台组的职责就是要能从web上和我们的系统对接,在更高层面上进行管理,一方面是为了便于公司内部系统的部署和监控,另一方面也是为了和客户对接。

关于proxy_pass的参数路径问题

由于工作需要,开始分析nginx的proxy模块,在分析之前,当然要先会用了。于是开始熟悉该模块的一些指令,其中最基本的指令要属proxy_pass了。nginx的英文文档总是看着感觉有些别扭,于是按惯例先google了一些文章。

这一搜,就掉进坑里了。

这些文章里都把proxy_pass的目标地址是形如“127.0.0.1:8090”和“127.0.0.1:8090/”分开讨论,认为后者“/“的作用是删除url中匹配的部分,然后再讨论目标地址中带了uri的情况。

其实根本没这么复杂,只有两种情况:

(1)目标地址中不带uri。即proxy_pass的参数形如”http://127.0.0.1:8090"。 此时新的目标url中,匹配的uri部分不做修改,原来是什么样就是什么样。

(2)目标地址中带uri。即proxy_pass的参数形如“http://127.0.0.1:8090/dir1/dir2"

利用here document携带c代码

假设你想通过一段脚本调用make来编译代码,并且在脚本中将一些编译需要的系统信息传递给makefile,可以通过bash的here document来实现。例如:

tmp_src_filename=fdfs_check_bits.c  
cat <<EOF > $tmp_src_filename  
#include <stdio.h>  
#include <unistd.h>  
#include <fcntl.h>  
int main()  
{  
        printf("%d\n", (int)sizeof(long));  
        printf("%d\n", (int)sizeof(off_t));  
        return 0;  
}  
EOF  
  
gcc -D_FILE_OFFSET_BITS=64 -o a.out $tmp_src_filename  
output=$(./a.out)  

emlog的一键备份

不知道大家平时备份是不是和我一样这么操作的:

  1. 登陆到后台,备份sql(当然,或者是用插件定期备份发送到邮箱)
  2. 用ftp备份content目录

如果你想简化操作,并且和我一样苦逼的用着虚拟主机,下面的脚本也许可以帮到你。脚本很丑陋,能完成功能即可。