一个用了统计CPU 内存 硬盘 使用率的shell脚本
一个用了统计CPU 内存 硬盘 使用率的shell脚本
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:#!/bin/bash#ThisscriptisusefordescribleCPUHardMemeryUtilizati...

复制代码 代码如下:

#!/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!” 博客

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新linuxshell学习
热门linuxshell学习
脚本专栏子分类