当前位置:  操作系统/服务器>linux

一个用了统计CPU 内存 硬盘 使用率的shell脚本

    来源: 互联网  发布时间:2014-10-13

    本文导语:  代码如下:#!/bin/bash#This script is use for describle CPU Hard Memery Utilizationtotal=0idle=0system=0user=0nice=0mem=0vmexec=/usr/bin/vmstatwhich sar > /dev/null 2>&1if [ $? -ne 0 ]then  ver=`vmstat -V | awk '{printf $3}'`  nice=0  temp=`vmstat 1 3 |tail -1`  user=`echo $temp |awk '{prin...

代码如下:

#!/bin/bash
#This script is use for describle CPU Hard Memery Utilization
total=0
idle=0
system=0
user=0
nice=0
mem=0
vmexec=/usr/bin/vmstat
which sar > /dev/null 2>&1
if [ $? -ne 0 ]
then
  ver=`vmstat -V | awk '{printf $3}'`
  nice=0
  temp=`vmstat 1 3 |tail -1`
  user=`echo $temp |awk '{printf("%sn",$13)}'`
  system=`echo $temp |awk '{printf("%sn",$14)}'`
  idle=`echo $temp |awk '{printf("%sn",$15)}'`
  total=`echo|awk '{print (c1+c2)}' c1=$system c2=$user`
fi
echo "#CPU Utilization#"
echo "Total CPU  is already use: $total"
echo "CPU user   is already use: $user"
echo "CPU system is already use: $system"
echo "CPU nice   is already use: $nice"
echo "CPU idle   is already use: $idle"
echo
root_use=$(df -lh | awk 'NR==2' | awk '{print $5}')
dev_use=$(df -lh | awk 'NR==3' | awk '{print $5}')
dev_shm_use=$(df -lh | awk 'NR==4' | awk '{print $5}')
echo "#Hard Utilization#"
echo "/        is already use: $root_use"
echo "/dev     is already use: $dev_use"
echo "/dev/shm is already use: $dev_shm_use"
echo
memery_used=$(free | awk 'NR==2' | awk '{print $3}')
memery_all=$(free | awk 'NR==2' | awk '{print $2}')
memery_percent=$(echo "scale=4;$memery_used / $memery_all" | bc)
percent_part1=$(echo $memery_percent | cut -c 2-3)
percent_part2=$(echo $memery_percent | cut -c 4-5)
echo "#Memery Utilization#"
echo "system memery is already use: $percent_part1.$percent_part2%"
swap_used=$(free | awk 'NR==4' | awk '{print $3}')
swap_all=$(free | awk 'NR==4' | awk '{print $2}')
swap_percent=$(echo "scale=4;$swap_used / $swap_all" | bc)
swap_part1=$(echo $swap_percent | cut -c 2-3)
swap_part2=$(echo $swap_percent | cut -c 4-5)
echo "swap   memery is already use: $swap_part1.$swap_part2%"
echo

在开发CFS过程中需要对机器实时的内存,CPU,硬盘使用率进行监控,因为CFS跑在Linux机器上,可以利用Linux中一些相应虚拟文件进行内存CPU使用率的计算,于是编写了以下脚本,很简单,但是很实用。

包含三个部分,分别为硬盘使用率,内存使用率和CPU使用率。

代码如下:

 #!/bin/sh

#count cpu_used_rate,memory_used_rate,disk_used_rate
#@Jayson 2012-5

#disk_used_rate
#Depend on real storage place the parameter 'Location' need to alter.
#本人文件主要存储于sda8分区,所以以此提取。
Location=/dev/sda8
Disk_Used_Rate=$(df -h | grep $Location | awk '{print $5}')
echo $Disk_Used_Rate

#memory_used_rate
LoadMemory=$(cat /proc/meminfo | awk '{print $2}')
Total=$(echo $LoadMemory | awk '{print $1}')
Free1=$(echo $LoadMemory | awk '{print $2}')
Free2=$(echo $LoadMemory | awk '{print $3}')
Free3=$(echo $LoadMemory | awk '{print $4}')

Used=`expr $Total - $Free1 - $Free2 - $Free3`
Used_Rate=`expr  $Used/$Total*100 | bc -l`
Memory_Used_Rate=`expr  $Used_Rate/1 | bc`
echo $Memory_Used_Rate%

#cpu_used_rate
Log1=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Sys1=$(echo $Log1 | awk '{print $4}')
Total1=$(echo $Log1 | awk '{print $1+$2+$3+$4+$5+$6+$7}')

sleep 0.5

Log2=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}')
Sys2=$(echo $Log2 | awk '{print $4}')
Total2=$(echo $Log2 | awk '{print $1+$2+$3+$4+$5+$6+$7}')

Sys=`expr $Sys2 - $Sys1`


本文出自 “Fighting,Jayson!” 博客

    
 
 

您可能感兴趣的文章:

  • unix系统下如何统计“文件系统使用率”
  • 统计 cpu 内存 使用率的shell脚本代码
  • 有人知道怎么用proc/diskstats统计硬盘使用率?
  • shell脚本实现的网站日志分析统计(可以统计9种数据)
  • 急求apache IP、PV统计脚本。
  • 求一个shell脚本 统计文件数目并删除一些文件
  • 要对文件中包含特定字符串的行数进行统计,Shell脚本该如何写?急用!!在线等待
  • SQL Server统计SQL语句执行时间的脚本
  • 使用shell脚本分析网站日志统计PV、404、500等数据
  • python脚本实现统计日志文件中的ip访问次数代码分享
  • linux下统计appche站点IP访问量的shell脚本
  • 牛人来帮忙解析一个shell脚本(用于统计一个进程的内存使用情况)
  • 统计网卡流量的两段shell脚本(使用ifconfig)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix下用什么命令可以统计所有进程的内存
  • linux进程(线程)运行过程中如何获取本进程当前的内存使用状况,统计信息?
  • php统计时间和内存使用情况示例分享
  • php统计时间与内存使用情况
  • linux 命令 统计两个文件夹下 不同的文件(只统计文件名)
  • 如何得到一个字符串里的换行次数,我用StringTokenizer来统计的话如果有一个行没内容的话就会统计出错,好烦啊
  • Web日志统计工具 sawmill
  • 代码覆盖率统计工具gcov的扩展 lcov
  • 请问如何在UNIX下统计一批文件的大小啊?
  • php 统计字数(支持中英文)的实现代码
  • 源码统计工具 pepper
  • 邮件反病毒统计代理 DSPAM
  • Apache日志统计 GoAccess
  • 网站流量统计系统 AudiStat
  • 网页统计日志分析 SuperSeriousStats
  • 网站流量访问统计分析 SlimStat
  • JavaScript统计库 jStat
  • 如何用awk统计数据
  • 网络使用情况统计工具 AsItHappens
  • Oracle中关数据库对象的统计分析
  • 代码行数统计工具 uuStepCount
  • 磁盘使用统计工具 ncdu
  • Web网站统计 WebDruid
  • 查看memcached实时统计 statsproxy


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3