RARLinux规格严格

RARLinux规格严格,第1张

http://lugir.com/software/rar4linux.html

http://www.2cto.com/os/201109/106237.html

http://hi.baidu.com/iguonan/item/8210838e43aa0a844514cf46

http://www.duduyu.net/liblibc-so-6-version-glibc_2-7-not-found

http://www.cyberciti.biz/faq/open-rar-file-or-extract-rar-files-under-linux-or-unix/

http://blog.csdn.net/lunarnan/article/details/7226439

下面是一个网友关于python监控CPU、内存、以及负载的代码,其中关于内存计算我认为不对,在我们项目里面,内存Free还应包括buffer和cache的,对于Linux来说。

#!/usr/bin/python -u
#-*- coding: UTF-8 -*-
# vi:ts=4:et
##==========================================================================
##
##  Copyright (c) onboss Inc. All Rights Reserved.
##
##--------------------------------------------------------------------------
##
##  File:        $Workfile: osinfo.py$
##               $Revision: 1$
##
##  Last Update: $2009-3-25 19:57$
##
##--------------------------------------------------------------------------
##

import os
import re
import sys
import time


# globa re
re_meminfo_parser = re.compile(r'^(?P<key>\S*):\s*(?P<value>\d*)\s*kB')

#
class OSstatus:
    """
    result = report client status.
    """
    def __init__(self, sleep=2):
        """Constructor
        """
        self.sleep=sleep

    def _get_mem_usage(self):
        """get mem used by percent

        self.result = falot
        """
        result={}
        try:
            fd=open('/proc/meminfo', 'r')
            lines=fd.readlines()
        finally:
            if fd:
                fd.close()
        for line in lines:
            match=re_meminfo_parser.match(line)
            if not match:
                continue # skip lines that don't parse
            key, value=match.groups(['key', 'value'])
            result[key]=int(value)
        #print "mem :", 100*(result["MemTotal"]-result["MemFree"])/result["MemTotal"]
        return 100.0*(result["MemTotal"]-result["MemFree"])/result["MemTotal"]

    def get_mem_usage(self):
        """safe to call _get_memused()
        self.result = falot
        """
        try:
            return self._get_mem_usage()
        except Exception, e:
            print "_get_mem_usage(self) Exception, %s"%e
            return 0

    def get_5m_load(self):
        """get 5 mines avg load

        self.result = float
        """
        try:
            return (os.getloadavg())[2]
        except Exception, e:
            print "_get_5m_load(self) Exception, %s"%e
            return 0
    
    def _read_cpu_usage(self):
        """Read the current system cpu usage from /proc/stat."""
        try:
            fd = open("/proc/stat", 'r')
            lines = fd.readlines()
        finally:
            if fd:
                fd.close()
        for line in lines:
            l = line.split()
            if len(l) < 5:
                continue
            if l[0].startswith('cpu'):
                return l
        return {}

    def get_cpu_usage(self):
        """get cpu avg used by percent
        """
        cpustr=self._read_cpu_usage()
        if not cpustr:
            return 0
        #cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100
        usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        #usni1=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])+long(cpustr[4])
        time.sleep(self.sleep)
        cpustr=self._read_cpu_usage()
        if not cpustr:
            return 0
        usni2=long(cpustr[1])+long(cpustr[2])+float(cpustr[3])+long(cpustr[5])+long(cpustr[6])+long(cpustr[7])+long(cpustr[4])
        usn2=long(cpustr[1])+long(cpustr[2])+long(cpustr[3])
        cpuper=(usn2-usn1)/(usni2-usni1)
        return 100*cpuper

    def get_os_info(self):
        """overide all functions.
        """
        return {"cpu":  "%s"%round(float(self.get_cpu_usage()), 2),\
                "mem":  "%s"%round(float(self.get_mem_usage()), 2),\
                "load": "%s"%round(float(self.get_5m_load()), 2),\
                }


###############################################
#
# unittest
#
###############################################
import unittest
class clientTestCase(unittest.TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    def test_cpu(self):
        """
        cpu
        """
        osinfo=OSstatus(2)
        self.assertEqual(type(osinfo.get_cpu_usage()), float)
        return

    def test_mem(self):
        """
        mem
        """
        osinfo=OSstatus(2)
        self.assertEqual(type(osinfo.get_mem_usage()), float)
        return
    
    def test_load(self):
        """
        load
        """
        osinfo=OSstatus(2)
        self.assertEqual(type(osinfo.get_5m_load()), float)
        return

    def test_all(self):
        """
        load
        """
        osinfo=OSstatus()
        self.assertEqual(type(osinfo.get_os_info()), dict)
        return

if __name__=='__test__':
    unittest.main()
elif __name__=='__main__':
    print "-"*20
    print OSstatus(2).get_os_info()
    print "-"*20

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/2088078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-07-22
下一篇 2022-07-22

发表评论

登录后才能评论

评论列表(0条)

保存