5.4 RHEL 環境 python 升級 yum 不能正常工做

   一、下載
wget http://www.python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2

二、解壓
tar jxvf Python-2.7.2.tar.bz2

三、編譯安裝
cd Python-2.7.2
./configure
make && make install
Python 默認安裝目錄在/usr/local/lib/python2.7
查看一下剛纔安裝的版本 /usr/local/bin/python  -V,看到了2.7.2

四、更改系統默認版本
以前查看版本使用    /usr/local/bin/python -V ,如今來把系統默認的Python指向剛纔安裝的Python2.7.2。
(yum是基於2.4.3,因此不要卸載)
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python2.6 /usr/bin/python
python -V 查看是否成功。

五、修復不能正常工做的yum
在完成了上面4步以後,若是有使用yum的話會發現出錯,這是由於yum 依賴2.4.3而如今默認的 Python 版本是2.7.2。
vim /usr/bin/yum
將首行顯示的 !#/usr/bin/python 修改成 !#/usr/bin/python2.4
保存。


    python  -V    查看當前版本
    ulimit   -n   65500   修改參數

  python netbench.py --host   ip   -p 80 -c 50000
    
下面的是測試網站併發量的
[root@localhost ~]# cat netbench.py 
# encoding: utf-8

import sys
import socket
import select
import time
import argparse

def netbench():
    s = socket.socket()
    s.connect(('r.domob.cn', 80))
    s.send('GET /bbb HTTP/1.1\r\nHost: r.domob.cn\r\n\r\n')
    data = s.recv(2048)
    s.close()
    print data

def run(hostname, port, desiredConnection):
    currentConnection = 0
    epoll = select.epoll()

    connections = {}
    while True:
        while currentConnection < desiredConnection:
            s = socket.socket()
            try:
                s.connect((hostname, port))
                currentConnection += 1
                connections[s.fileno()] = s
                epoll.register(s, select.POLLIN|select.EPOLLERR)
                print "%d connections made, fileno=%d" % (currentConnection, s.fileno())
            except Exception,e:
                print e
                time.sleep(1)
                continue

        fd_events = epoll.poll()
        for sock, event in fd_events:
            s = connections[sock]
            s.close()
            del connections[sock]
            currentConnection -= 1
            print "CLOSED --- fd=%d. with event %d, left %d connections" % (sock, event, currentConnection)
        

def parse_arg():
    parser = argparse.ArgumentParser(description='yet another bench mark tool.')
    parser.add_argument('--host', required=True,
                        help='target hostname or ip')
    parser.add_argument('-p', '--port', required=True, type=int,
                        help='target port')
    parser.add_argument('-c', '--connections', required=True, type=int,
                        help='Number of connections to make')
    args = parser.parse_args()
    return args
    
if __name__ == '__main__':
    args = parse_arg()
    print args.host
    run(args.host, args.port, args.connections)
相關文章
相關標籤/搜索