仓酷云
标题:
来一发shell收罗体系cpu 内存 磁盘 收集信息
[打印本页]
作者:
因胸联盟
时间:
2015-1-14 20:22
标题:
来一发shell收罗体系cpu 内存 磁盘 收集信息
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
cpu利用率
收罗算法
经由过程/proc/stat文件收罗并盘算CPU总利用率大概单个核利用率。以cpu0为例,算法以下:
1.cat/proc/stat|grep‘cpu0’失掉cpu0的信息
2.cpuTotal1=user+nice+system+idle+iowait+irq+softirq
3.cpuUsed1=user+nice+system+irq+softirq
4.sleep30秒
5.再次cat/proc/stat|grepcpu0失掉cpu的信息
6.cpuTotal2=user+nice+system+idle+iowait+irq+softirq
7.cpuUsed2=user+nice+system+irq+softirq
8.失掉cpu0在30秒内的单核使用率:(cpuUsed2CcpuUsed1)*100/(cpuTotal2CcpuTotal1)
相称于利用topCd30下令,把user、nice、system、irq、softirq五项的利用率相加。
[size=1.2em]
viewsourceprint?a=$(`cat/proc/stat|grep-E"cpu"|awk-vtotal=0{$1="";for(i=2;i<=NF;i++){total+=$i};used=$2+$3+$4+$7+$8}END{printtotal,used}`)sleep30b=$(`cat/proc/stat|grep-E"cpu"|awk-vtotal=0{$1="";for(i=2;i<=NF;i++){total+=$i};used=$2+$3+$4+$7+$8}END{printtotal,used}`)cpu_usage=$(((${b[1]}-${a[1]})*100/(${b[0]}-${a[0]})))
复制代码
[size=1.2em]cpu负载
收罗算法:
读取/proc/loadavg失掉呆板的1/5/15分钟均匀负载,再乘以100。
[size=1.7em]
viewsourceprint?cpuload=$(`cat/proc/loadavg|awk{print$1,$2,$3}`)load1=${cpuload[0]}load5=${cpuload[1]}load15=${cpuload[2]}
复制代码
[size=1.7em]内存收罗
使用步伐利用内存
收罗算法:
读取/proc/meminfo文件,(MemTotalCMemFreeCBuffersCCached)/1024失掉使用步伐利用内存数。
[size=1.2em]
viewsourceprint?awk/MemTotal/{total=$2}/MemFree/{free=$2}/Buffers/{buffers=$2}/^Cached/{cached=$2}END{print(total-free-buffers-cached)/1024}/proc/meminfo
复制代码
[size=1.2em]MEM利用量
收罗算法:
读取/proc/meminfo文件,MemTotalCMemFree失掉MEM利用量。
[size=1.2em]
viewsourceprint?awk/MemTotal/{total=$2}/MemFree/{free=$2}END{print(total-free)/1024}/proc/meminfo
复制代码
[size=1.2em]SWAP利用巨细
收罗算法:
经由过程/proc/meminfo文件,SwapTotalCSwapFree失掉SWAP利用巨细。
磁盘信息收罗
diskio
1、IN:均匀每秒把数据从硬盘读到物理内存的数据量
收罗算法:
读取/proc/vmstat文件得出比来240秒内pgpgin的增量,把pgpgin的增量再除以240失掉每秒的均匀增量。
相称于vmstat240下令bi一列的输入。
viewsourceprint?a=`awk/pgpgin/{print$2}/proc/vmstat`sleep240b=`awk/pgpgin/{print$2}/proc/vmstat`ioin=$(((b-a)/240))
复制代码
2、OUT:均匀每秒把数据从物理内存写到硬盘的数据量
收罗算法:
读取/proc/vmstat文件得出比来240秒内pgpgout的增量,把pgpgout的增量再除以240失掉每秒的均匀增量。
相称于vmstat240下令bo一列的输入。
viewsourceprint?a=`awk/pgpgout/{print$2}/proc/vmstat`sleep240b=`awk/pgpgout/{print$2}/proc/vmstat`ioout=$(((b-a)/240))
复制代码
[size=1.7em]收集
流量
以http://www.centos.bz/为例,eth0是内网,eth1外网,猎取60秒的流量。
呆板网卡的均匀每秒流量
收罗算法:
读取/proc/net/dev文件,失掉60秒内发送和吸收的字节数(KB),然后乘以8,再除以60,失掉每秒的均匀流量。
[size=1.2em]
viewsourceprint?traffic_be=$(`awkBEGIN{ORS=""}/eth0/{print$2,$10}/eth1/{print$2,$10}/proc/net/dev`)sleep60traffic_af=$(`awkBEGIN{ORS=""}/eth0/{print$2,$10}/eth1/{print$2,$10}/proc/net/dev`)eth0_in=$(((${traffic_af[0]}-${traffic_be[0]})/60))eth0_out=$(((${traffic_af[1]}${traffic_be[1]})/60))eth1_in=$(((${traffic_af[2]}${traffic_be[2]})/60))eth1_out=$(((${traffic_af[3]}${traffic_be[3]})/60))
复制代码
[size=1.2em]包量
呆板网卡的均匀每秒包量
收罗算法:
读取/proc/net/dev文件,失掉60秒内发送和吸收的包量,然后除以60,失掉每秒的均匀包量。
viewsourceprint?packet_be=$(`awkBEGIN{ORS=""}/eth0/{print$3,$11}/eth1/{print$3,$11}/proc/net/dev`)sleep60packet_af=$(`awkBEGIN{ORS=""}/eth0/{print$3,$11}/eth1/{print$3,$11}/proc/net/dev`)eth0_in=$(((${packet_af[0]}-${packet_be[0]})/60))eth0_out=$(((${packet_af[1]}${packet_be[1]})/60))eth1_in=$(((${packet_af[2]}${packet_be[2]})/60))eth1_out=$(((${packet_af[3]}${packet_be[3]})/60))
复制代码
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
作者:
活着的死人
时间:
2015-1-16 14:59
标题:
来一发shell收罗体系cpu 内存 磁盘 收集信息
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
作者:
谁可相欹
时间:
2015-1-25 07:49
上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题.
作者:
蒙在股里
时间:
2015-2-2 21:38
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者:
小妖女
时间:
2015-2-8 08:09
有疑问前,知识学习前,先用搜索。
作者:
海妖
时间:
2015-3-7 21:55
对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
作者:
admin
时间:
2015-3-15 21:38
在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。
作者:
兰色精灵
时间:
2015-3-22 17:08
其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2