内存信息 / meminfo

返回dict

  1.  
    #!/usr/bin/env python
  2.  
    def memory_stat():
  3.  
    mem = {}
  4.  
    f = open("/proc/meminfo")
  5.  
    lines = f.readlines()
  6.  
    f.close()
  7.  
    for line in lines:
  8.  
    if len(line) < 2: continue
  9.  
    name = line.split(':')[0]
  10.  
    var = line.split(':')[1].split()[0]
  11.  
    mem[name] = long(var) * 1024.0
  12.  
    mem['MemUsed'] = mem['MemTotal'] - mem['MemFree'] - mem['Buffers'] - mem['Cached']
  13.  
    return mem

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

  1.  
    #!/usr/bin/env python
  2.  
    def cpu_stat():
  3.  
    cpu = []
  4.  
    cpuinfo = {}
  5.  
    f = open("/proc/cpuinfo")
  6.  
    lines = f.readlines()
  7.  
    f.close()
  8.  
    for line in lines:
  9.  
    if line == '\n':
  10.  
    cpu.append(cpuinfo)
  11.  
    cpuinfo = {}
  12.  
    if len(line) < 2: continue
  13.  
    name = line.split(':')[0].rstrip()
  14.  
    var = line.split(':')[1]
  15.  
    cpuinfo[name] = var
  16.  
    return cpu

负载信息 / loadavg
返回dict

  1.  
    #!/usr/bin/env python
  2.  
    def load_stat():
  3.  
    loadavg = {}
  4.  
    f = open("/proc/loadavg")
  5.  
    con = f.read().split()
  6.  
    f.close()
  7.  
    loadavg['lavg_1']=con[0]
  8.  
    loadavg['lavg_5']=con[1]
  9.  
    loadavg['lavg_15']=con[2]
  10.  
    loadavg['nr']=con[3]
  11.  
    loadavg['last_pid']=con[4]
  12.  
    return loadavg

运转时间 / Uptime
返回dict

  1.  
    #!/usr/bin/env python
  2.  
    def uptime_stat():
  3.  
    uptime = {}
  4.  
    f = open("/proc/uptime")
  5.  
    con = f.read().split()
  6.  
    f.close()
  7.  
    all_sec = float(con[0])
  8.  
    MINUTE,HOUR,DAY = 60,3600,86400
  9.  
    uptime['day'] = int(all_sec / DAY )
  10.  
    uptime['hour'] = int((all_sec % DAY) / HOUR)
  11.  
    uptime['minute'] = int((all_sec % HOUR) / MINUTE)
  12.  
    uptime['second'] = int(all_sec % MINUTE)
  13.  
    uptime['Free rate'] = float(con[1]) / float(con[0])
  14.  
    return uptime

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

  1.  
    #!/usr/bin/env python
  2.  
    def net_stat():
  3.  
    net = []
  4.  
    f = open("/proc/net/dev")
  5.  
    lines = f.readlines()
  6.  
    f.close()
  7.  
    for line in lines[2:]:
  8.  
    con = line.split()
  9.  
    """
  10.  
    intf = {}
  11.  
    intf['interface'] = con[0].lstrip(":")
  12.  
    intf['ReceiveBytes'] = int(con[1])
  13.  
    intf['ReceivePackets'] = int(con[2])
  14.  
    intf['ReceiveErrs'] = int(con[3])
  15.  
    intf['ReceiveDrop'] = int(con[4])
  16.  
    intf['ReceiveFifo'] = int(con[5])
  17.  
    intf['ReceiveFrames'] = int(con[6])
  18.  
    intf['ReceiveCompressed'] = int(con[7])
  19.  
    intf['ReceiveMulticast'] = int(con[8])
  20.  
    intf['TransmitBytes'] = int(con[9])
  21.  
    intf['TransmitPackets'] = int(con[10])
  22.  
    intf['TransmitErrs'] = int(con[11])
  23.  
    intf['TransmitDrop'] = int(con[12])
  24.  
    intf['TransmitFifo'] = int(con[13])
  25.  
    intf['TransmitFrames'] = int(con[14])
  26.  
    intf['TransmitCompressed'] = int(con[15])
  27.  
    intf['TransmitMulticast'] = int(con[16])
  28.  
    """
  29.  
    intf = dict(
  30.  
    zip(
  31.  
    ( 'interface','ReceiveBytes','ReceivePackets',
  32.  
    'ReceiveErrs','ReceiveDrop','ReceiveFifo',
  33.  
    'ReceiveFrames','ReceiveCompressed','ReceiveMulticast',
  34.  
    'TransmitBytes','TransmitPackets','TransmitErrs',
  35.  
    'TransmitDrop', 'TransmitFifo','TransmitFrames',
  36.  
    'TransmitCompressed','TransmitMulticast' ),
  37.  
    ( con[0].rstrip(":"),int(con[1]),int(con[2]),
  38.  
    int(con[3]),int(con[4]),int(con[5]),
  39.  
    int(con[6]),int(con[7]),int(con[8]),
  40.  
    int(con[9]),int(con[10]),int(con[11]),
  41.  
    int(con[12]),int(con[13]),int(con[14]),
  42.  
    int(con[15]),int(con[16]), )
  43.  
    )
  44.  
    )
  45.  
     
  46.  
    net.append(intf)
  47.  
    return net

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

  1.  
    #!/usr/bin/env python
  2.  
    def disk_stat():
  3.  
    import os
  4.  
    hd={}
  5.  
    disk = os.statvfs("/")
  6.  
    hd['available'] = disk.f_bsize * disk.f_bavail
  7.  
    hd['capacity'] = disk.f_bsize * disk.f_blocks
  8.  
    hd['used'] = disk.f_bsize * disk.f_bfree
  9.  
    return hd

linux获取内存、cpu、负载、网口流量、磁盘信息的更多相关文章

  1. linux查看内存cpu占用

    linux查看内存cpu占用top 命令  按q退出 可以添加额外选项选择按进程或按用户查看如: top -u gitu PID:进程idPR:进程的优先级别,越小越优先被执行NInice:值VIRT ...

  2. Linux查看内存,负载状态

    Linux查看内存,负载状态 查看内存使用情况  www.ahlinux.com cat /proc/meminfo MemTotal:       16332644 kB MemFree:     ...

  3. Linux系统排查——CPU负载篇

    本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...

  4. 【原创】(二)Linux进程调度器-CPU负载

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  5. linux里的CPU负载

    昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...

  6. python脚本监控获取当前Linux操作系统[内存]/[cpu]/[硬盘]/[登录用户]

    此脚本应用在linux, 前提是需要有python和python的psutil模块 脚本 #!/usr/bin/env python # coding=utf-8 import sys import ...

  7. Linux如何查看CPU负载

    负载(load)是Linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ...

  8. 查看linux占用内存/CPU最多的进程

    可以使用一下命令查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个进程 ps -aux | sort -k3nr ...

  9. <转>查看linux占用内存/CPU最多的进程

    转自 http://beginman.cn/page26/ 查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 或者top (然后按下M,注意大写) 查使用 ...

随机推荐

  1. Weekend Log 4.6

    PHP相关 常用PHP编译 .\/configure 12 ./configure -prefix=/usr/local/php --with-config-file-path=/usr/local/ ...

  2. Micro QR 和QR码

    QRcode.com 什么是QR码 QR码的种类 如何导入 QR码的成功之路 常见问题解答 咨询 Language   Micro QR码 返回 QR码的种类 首页 二维码上只有一个定位图案,这就是M ...

  3. Linux 如何测试 IO 性能(磁盘读写速度)

    这几天做MySQL性能测试,偌大一个公司,找几台性能测试机器都很纠结,终于协调到两台,IO的性能如何还不知道.数据库属于IO密集型的应用,所以还是先评估下Server的IO性能,看看是否能和线上的机器 ...

  4. Requests+正则表达式爬取猫眼电影

    目标 提取出猫眼电影TOP100的电影名称.时间.评分.图片等信息,提取站点的URL为http://maoyan.com/board/4,提取的结果以文本的形式保存下来. 准备工作 请安装好reque ...

  5. <亲测>阿里云centos7 挂载数据盘配置

    阿里云centos7 挂载数据盘配置 2018年07月17日 15:13:53 阅读数:235更多 个人分类: linux阿里云ECS数据盘挂载   查看磁盘情况 fdisk -l  其中/dev/v ...

  6. JAVA多线程之中断机制(stop()、interrupted()、isInterrupted())

    一,介绍 本文记录JAVA多线程中的中断机制的一些知识点.主要是stop方法.interrupted()与isInterrupted()方法的区别,并从源代码的实现上进行简单分析. JAVA中有3种方 ...

  7. tomcat源码 Connector

    Connector容器主要负责解析socket请求,在tomcat中的源码位于org.apache.catalina.connector和org.apache.coyote包路径下:通过上两节的分析, ...

  8. SpringSecurity-ChannelProcessingFilter的作用

    ChannelProcessingFilter决定的是web请求的通道,即http或https. 在springsecurity配置文件中添加这样一行 <intercept-url patter ...

  9. 使用python操作word

    有两种方式: 使用win32com 使用docx 1.使用win32com扩展包 只对windows平台有效 代码: # coding=utf-8 import win32com from win32 ...

  10. PAT 乙级 1051 复数乘法 (15) C++版

    1051. 复数乘法 (15) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 复数可以写成(A + Bi)的常规 ...