統計 CPU 記憶體 硬碟 使用率的shell指令碼

2021-08-02 04:19:48 字數 3149 閱讀 2719

**如下:

#!/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 ''`

nice=0

temp=`vmstat 1 3 |tail -1`

user=`echo $temp |awk ''`

system=`echo $temp |awk ''`

idle=`echo $temp |awk ''`

total=`echo|awk '' 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 '')

dev_use=$(df -lh | awk 'nr==3' | awk '')

dev_shm_use=$(df -lh | awk 'nr==4' | awk '')

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 '')

memery_all=$(free | awk 'nr==2' | awk '')

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 '')

swap_all=$(free | awk 'nr==4' | awk '')

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 '')

echo $disk_used_rate

#memory_used_rate

loadmemory=$(cat /proc/meminfo | awk '')

total=$(echo $loadmemory | awk '')

free1=$(echo $loadmemory | awk '')

free2=$(echo $loadmemory | awk '')

free3=$(echo $loadmemory | awk '')

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 '')

sys1=$(echo $log1 | awk '')

total1=$(echo $log1 | awk '')

sleep 0.5

log2=$(cat /proc/stat | grep 'cpu ' | awk '')

sys2=$(echo $log2 | awk '')

total2=$(echo $log2 | awk '')

sys=`expr $sys2 - $sys1`

cpu使用率統計

cat proc stat得到 user nice system idle iowait irq softirq stealstolen guest 的9元組 再採兩個夠短的時間點,做差計算即可 cat proc pid stat讀取到 pid 6873 程序號utime 1587 該任務在使用者態...

linux 在 cpu 記憶體 使用率

cpu ps aux head 1 ps aux sort k3nr head 3 記憶體 ps aux head 1 ps aux sort k4nr head 3 說明 ps aux中 a指代all 所有的程序,u指代userid 執行該程序的使用者id,x指代顯示所有程式,不以終端機來區分 p...

PHP獲取CPU 記憶體使用率

類 class systeminfowindows return path 獲得cpu使用率vbs檔案生成函式 return string 返回vbs檔案路徑 private function getcupusagevbspath 獲得總記憶體及可用物理記憶體json vbs檔案生成函式 retur...