計算Linux內存,CUP,硬盤使用率的shell腳本

    在開發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`
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章