zoukankan      html  css  js  c++  java
  • RARLinux 规格严格

    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
  • 相关阅读:
    elemenui数据表格加入计数器和输入框
    递归求阶乘
    递归累和
    递归
    file类
    Object类
    首页背景图
    异常的处理
    数据结构有什么用?常见的数据结构有什么?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
  • 原文地址:https://www.cnblogs.com/diyunpeng/p/2552778.html
Copyright © 2011-2022 走看看