wanmin444 发表于 2018-8-12 13:35:51

python Linux系统信息

内存信息 / meminfo  
返回dict
  
#!/usr/bin/env python
  
def memory_stat():
  
    mem = {}
  
    f = open("/proc/meminfo")
  
    lines = f.readlines()
  
    f.close()
  
    for line in lines:
  
      if len(line) < 2: continue
  
      name = line.split(':')
  
      var = line.split(':').split()
  
      mem = long(var) * 1024.0
  
    mem['MemUsed'] = mem['MemTotal'] - mem['MemFree'] - mem['Buffers'] - mem['Cached']
  
    return mem
  

  

  
CPU信息 / cpuinfo
  
返回list,
  
每核心一dict
  

  
#!/usr/bin/env python
  
def cpu_stat():
  
    cpu = []
  
    cpuinfo = {}
  
    f = open("/proc/cpuinfo")
  
    lines = f.readlines()
  
    f.close()
  
    for line in lines:
  
      if line == '\n':
  
            cpu.append(cpuinfo)
  
            cpuinfo = {}
  
      if len(line) < 2: continue
  
      name = line.split(':').rstrip()
  
      var = line.split(':')
  
      cpuinfo = var
  
    return cpu
  

  
负载信息 / loadavg
  
返回dict
  
#!/usr/bin/env python
  
def load_stat():
  
    loadavg = {}
  
    f = open("/proc/loadavg")
  
    con = f.read().split()
  
    f.close()
  
    loadavg['lavg_1']=con
  
    loadavg['lavg_5']=con
  
    loadavg['lavg_15']=con
  
    loadavg['nr']=con
  
    loadavg['last_pid']=con
  
    return loadavg
  

  

  
运转时间 / Uptime
  
返回dict
  

  
#!/usr/bin/env python
  
def uptime_stat():
  
    uptime = {}
  
    f = open("/proc/uptime")
  
    con = f.read().split()
  
    f.close()
  
    all_sec = float(con)
  
    MINUTE,HOUR,DAY = 60,3600,86400
  
    uptime['day'] = int(all_sec / DAY )
  
    uptime['hour'] = int((all_sec % DAY) / HOUR)
  
    uptime['minute'] = int((all_sec % HOUR) / MINUTE)
  
    uptime['second'] = int(all_sec % MINUTE)
  
    uptime['Free rate'] = float(con) / float(con)
  
    return uptime
  

  

  
获取网卡流量信息 /proc/net/dev
  
返回dict,单位byte
  

  
#!/usr/bin/env python
  
def net_stat():
  
    net = []
  
    f = open("/proc/net/dev")
  
    lines = f.readlines()
  
    f.close()
  
    for line in lines:
  
      con = line.split()
  
      """
  
      intf = {}
  
      intf['interface'] = con.lstrip(":")
  
      intf['ReceiveBytes'] = int(con)
  
      intf['ReceivePackets'] = int(con)
  
      intf['ReceiveErrs'] = int(con)
  
      intf['ReceiveDrop'] = int(con)
  
      intf['ReceiveFifo'] = int(con)
  
      intf['ReceiveFrames'] = int(con)
  
      intf['ReceiveCompressed'] = int(con)
  
      intf['ReceiveMulticast'] = int(con)
  
      intf['TransmitBytes'] = int(con)
  
      intf['TransmitPackets'] = int(con)
  
      intf['TransmitErrs'] = int(con)
  
      intf['TransmitDrop'] = int(con)
  
      intf['TransmitFifo'] = int(con)
  
      intf['TransmitFrames'] = int(con)
  
      intf['TransmitCompressed'] = int(con)
  
      intf['TransmitMulticast'] = int(con)
  
      """
  
      intf = dict(
  
            zip(
  
                ( 'interface','ReceiveBytes','ReceivePackets',
  
                  'ReceiveErrs','ReceiveDrop','ReceiveFifo',
  
                  'ReceiveFrames','ReceiveCompressed','ReceiveMulticast',
  
                  'TransmitBytes','TransmitPackets','TransmitErrs',
  
                  'TransmitDrop', 'TransmitFifo','TransmitFrames',
  
                  'TransmitCompressed','TransmitMulticast' ),
  
                ( con.rstrip(":"),int(con),int(con),
  
                  int(con),int(con),int(con),
  
                  int(con),int(con),int(con),
  
                  int(con),int(con),int(con),
  
                  int(con),int(con),int(con),
  
                  int(con),int(con), )
  
            )
  
      )
  

  
      net.append(intf)
  
    return net
  

  

  
磁盘空间使用
  
使用内置Python内置函数,返回dict,单位byte
  

  
#!/usr/bin/env python
  
def disk_stat():
  
    import os
  
    hd={}
  
    disk = os.statvfs("/")
  
    hd['available'] = disk.f_bsize * disk.f_bavail
  
    hd['capacity'] = disk.f_bsize * disk.f_blocks
  
    hd['used'] = disk.f_bsize * disk.f_bfree
  
    return hd
页: [1]
查看完整版本: python Linux系统信息