python获取系统信息

#负载信息
    def load_stat(self):
        """
        过去的1、5、15分钟内运行队列中的平均进程数量
        """


        loadavg = {}
        f = open("/proc/loadavg")
        con = f.read().split()
        f.close()     
        loadavg['lavg_1']=con[0]
        loadavg['lavg_5']=con[1]
        loadavg['lavg_15']=con[2]
        #loadavg['nr']=con[3]
        #loadavg['last_pid']=con[4]
        return loadavg


    #运转时间
    def uptime_stat(self):
        uptime = {}
        f = open("/proc/uptime")
        con = f.read().split()
        f.close()
        all_sec = float(con[0])
        MINUTE,HOUR,DAY = 60,3600,86400
        d = int(all_sec / DAY )
        h = int((all_sec % DAY) / HOUR)
        m = int((all_sec % HOUR) / MINUTE)
        s = int(all_sec % MINUTE)
        uptime['uptime'] = '已运行%s天%s时%s分%s秒'%(d,h,m,s)
        uptime['FreeRate'] = float(con[1]) / float(con[0])
        return uptime


    #磁盘空间使用 单位byte
    def disk_stat(self):


        disk = os.statvfs("/")
        available = disk.f_bsize * disk.f_bavail
        capacity = disk.f_bsize * disk.f_blocks
        used = capacity - available
        hdper = float(used)/capacity
        return 100*hdper


    #网络流量
    def _read_netcard_usage(self):
        
        fd = open("/proc/net/dev", "r")
        for line in fd.readlines():
            if line.find("eth0") > 0:
                recv = float(line.split(":")[1].split()[0])
                send = float(line.split()[9])
        fd.close()
        return (float(recv), float(send))


    def getNetworkTraffic(self):


        dic = {}
        resultLst = []
        (recv, send) = self._read_netcard_usage()
        time.sleep(1)
        (new_recv, new_send) = self._read_netcard_usage()
        dic.setdefault('recv','%s KB/s'%str((new_recv -recv)/1024))
        dic.setdefault('send','%s KB/s'%str((new_send -send)/1024))
        resultLst.append(dic)
        return resultLst,len(resultLst)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值