linux获取内存、cpu、负载、网口流量、磁盘信息
内存信息 / 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(':')[0]
- var = line.split(':')[1].split()[0]
- mem[name] = 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(':')[0].rstrip()
- var = line.split(':')[1]
- cpuinfo[name] = 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[0]
- loadavg['lavg_5']=con[1]
- loadavg['lavg_15']=con[2]
- loadavg['nr']=con[3]
- loadavg['last_pid']=con[4]
- 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[0])
- 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[1]) / float(con[0])
- 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[2:]:
- con = line.split()
- """
- intf = {}
- intf['interface'] = con[0].lstrip(":")
- intf['ReceiveBytes'] = int(con[1])
- intf['ReceivePackets'] = int(con[2])
- intf['ReceiveErrs'] = int(con[3])
- intf['ReceiveDrop'] = int(con[4])
- intf['ReceiveFifo'] = int(con[5])
- intf['ReceiveFrames'] = int(con[6])
- intf['ReceiveCompressed'] = int(con[7])
- intf['ReceiveMulticast'] = int(con[8])
- intf['TransmitBytes'] = int(con[9])
- intf['TransmitPackets'] = int(con[10])
- intf['TransmitErrs'] = int(con[11])
- intf['TransmitDrop'] = int(con[12])
- intf['TransmitFifo'] = int(con[13])
- intf['TransmitFrames'] = int(con[14])
- intf['TransmitCompressed'] = int(con[15])
- intf['TransmitMulticast'] = int(con[16])
- """
- intf = dict(
- zip(
- ( 'interface','ReceiveBytes','ReceivePackets',
- 'ReceiveErrs','ReceiveDrop','ReceiveFifo',
- 'ReceiveFrames','ReceiveCompressed','ReceiveMulticast',
- 'TransmitBytes','TransmitPackets','TransmitErrs',
- 'TransmitDrop', 'TransmitFifo','TransmitFrames',
- 'TransmitCompressed','TransmitMulticast' ),
- ( con[0].rstrip(":"),int(con[1]),int(con[2]),
- int(con[3]),int(con[4]),int(con[5]),
- int(con[6]),int(con[7]),int(con[8]),
- int(con[9]),int(con[10]),int(con[11]),
- int(con[12]),int(con[13]),int(con[14]),
- int(con[15]),int(con[16]), )
- )
- )
- 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
linux获取内存、cpu、负载、网口流量、磁盘信息的更多相关文章
- linux查看内存cpu占用
linux查看内存cpu占用top 命令 按q退出 可以添加额外选项选择按进程或按用户查看如: top -u gitu PID:进程idPR:进程的优先级别,越小越优先被执行NInice:值VIRT ...
- Linux查看内存,负载状态
Linux查看内存,负载状态 查看内存使用情况 www.ahlinux.com cat /proc/meminfo MemTotal: 16332644 kB MemFree: ...
- Linux系统排查——CPU负载篇
本随笔介绍CPU负载的排查手段. 查看系统负载的工具:uptime,w,都能查看系统负载,系统平均负载是处于运行或不可打扰状态的进程的平均数, 可运行:运行态,占用CPU,或就绪态,等待CPU调度. ...
- 【原创】(二)Linux进程调度器-CPU负载
背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...
- linux里的CPU负载
昨天查看Nagios警报信息,发现其中一台服务器CPU负载过重,机器为CentOS系统.信息如下: 2011-2-15 (星期二) 17:50 WARNING - load average: 9.73 ...
- python脚本监控获取当前Linux操作系统[内存]/[cpu]/[硬盘]/[登录用户]
此脚本应用在linux, 前提是需要有python和python的psutil模块 脚本 #!/usr/bin/env python # coding=utf-8 import sys import ...
- Linux如何查看CPU负载
负载(load)是Linux机器的一个重要指标,直观了反应了机器当前的状态.如果机器负载过高,那么对机器的操作将难以进行. linux的负载高,主要是由于CPU使用.内存使用.IO消耗三部分构成.任意 ...
- 查看linux占用内存/CPU最多的进程
可以使用一下命令查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 可以使用一下命令查使用CPU最多的10个进程 ps -aux | sort -k3nr ...
- <转>查看linux占用内存/CPU最多的进程
转自 http://beginman.cn/page26/ 查使用内存最多的10个进程 ps -aux | sort -k4nr | head -n 10 或者top (然后按下M,注意大写) 查使用 ...
随机推荐
- jQuery自定义扩展写法
jQuery自定义扩展有两种写法: $.extend({}) ; 调用方法: $.方法 $.fn.extend({}); 调用方法: ...
- iwebshop (: Cannot use object of type stdClass as array in)
今天在PHP输出一个二维数组的时候,出现了“Fatal error: Cannot use object of type stdClass as array in……”. 这个二维数组是这样的: Ar ...
- 打开word文档总是自动弹出控件工具条的解决办法:
打开word文档总是自动弹出控件工具条的解决办法:1.查看是否word文档和模板中了'apmp宏病毒,按ALT+F11组合键,双击当前文档下属的ThisDocument,清空里面的内容:双击Norma ...
- hadoop fs、hadoop dfs与hdfs dfs的区别
不多说,直接上干货! hadoop fs: 使用面最广,可以操作任何文件系统. hadoop dfs与hdfs dfs : 只能操作HDFS文件系统相关(包括与Local FS间的操作),前 ...
- bundle adjustment 玩具程序
结合 bundle adjustment原理(1) 和 Levenberg-Marquardt 的 MATLAB 代码 两篇博客的成果,调用MATLAB R2016a中 bundleAdjustmen ...
- IntelliJ IDEA2017 激活方法 最新的
今天打开电脑,非常不幸,idea出问题了!!! 大部分人以前应该都是用的以下方法: 1. 到网站 http://idea.lanyus.com/ 获取注册码 2.填入下面的license server ...
- 让SH/BAT脚本定位到运行目录的相对位置,实现其脚本可在任意运行目录下被正确执行
让SH/BAT脚本定位到运行目录的相对位置 实现其脚本可在任意运行目录下被正确执行 在Linux下的bash脚本 #!/bin/bash cd `` 在Windows下的BAT脚本 echo off ...
- hadoop集群部署
1) 安装jdk 下载jdk-6u21-linux-i586.bin 然后修改/etc/profile: export JAVA_HOME=/usr/local/jdk export CLASSPAT ...
- android 5.0安装应用冲突问题
公司二款产品无法同时安装 为了查看原因 用adb命令安装((adb 命令要配置环境环境,path 盘符+adt-bundle-windows-x86-20140702\sdk\platform-too ...
- T-SQL 简单子查询
1.使用变量的方式实现的查询 use StudentManageDB go declare @StuId int --查询张永利学号 select @StuId=StudentId from Stud ...