Shell脚本系统管理之二 - 获取系统资源

# 系统资源很简单,都是linux现成的命令调用下就可以了 #

注意的是

  1.  硬盘占用需要区分以那个分区占用为准还是整个硬盘的占用,不然会出现前端显示硬盘还没用完,实际使用的分区已经被日志写满的情况
  2.  cpu的实时百分比占用率经过调用返回是不准确的,因为每调用一次脚本,本身就会造成cpu占用,这可不就是量子纠缠测不准原则,准确的方法是调用方定时采样cpu用量,由调用方来计算占用率百分比,% = (cpuUsed1-cpuUsed2)/(cpuTotal1-cpuTotal2)

需要检测其他任何资源都加进去就可以了

# 获取cpu、内存、硬盘、客户端ip、连接数
function sf_cpu() {
  local ngxNum=`netstat -tnp|grep 18040|grep -v 127.0.0.1|wc -l` 
  local diskFree=`df|grep dev |awk 'NR>1{print $4}' |awk 'BEGIN{x=0} {x=x+$1 } END{print x}'`
  local diskUsed=`df|grep dev |awk 'NR>1{print $3}' |awk 'BEGIN{x=0} {x=x+$1 } END{print x}'`
  local diskTotal=`df|grep dev |awk 'NR>1{print $2}' |awk 'BEGIN{x=0} {x=x+$1 } END{print x}'`    
  local memFree=`free |grep Mem |awk '{print $4}'`    
  local memUsed=`free |grep Mem |awk '{print $3}'`   
  local memTotal=`free |grep Mem |awk '{print $2}'`    
  local cpuUsed=`awk 'BEGIN{used=0} /cpu / { used=$2+$3+$4+$7+$8 }END{print used}' /proc/stat`    
  local cpuTotal=`awk 'BEGIN{total=0} /cpu / {for(i=2;i<=NF;i++);total+=i}END{print $total}' /proc/stat`  
  local cpuPercent=`top -b -n1 | grep Cpu | awk '{print 100-$8,"%"}'`
  local clientip=`netstat -tlpna |grep -i ESTABLISHED| awk '{print $5}' |grep -v ::|grep -v 127.|grep -v 0.0.0|grep -iv And|grep -iv address|awk -F ":" '{print $1","}'| sort -u|xargs echo`
  local rjson="{\"cpuTotal\":\""$cpuTotal"\",\"cpuUsed\":\""$cpuUsed"\",\"memTotal\":\""$memTotal"\",\"memUsed\":\""$memUsed"\",\"memFree\":\""$memFree"\",\"diskTotal\":\""$diskTotal"\",\"diskUsed\":\""$diskUsed"\",\"diskFree\":\""$diskFree"\",\"ngxNum\":\""$ngxNum"\",\"cpuPercent\":\""$cpuPercent"\",\"clientip\":\""$clientip"\"}"
  echo $rjson  
}

返回json格式方便前端解析

脚本可以提供业务层单独调用

也可以cgi服务挂载在ngx下提供调用,json格式,方便传输和解析

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值