如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率
原理:
1)使用ps得到進(jìn)程名的所有進(jìn)程pid
ps -C process_name -o pid=
2) 使用 /proc/$pid/status獲得內(nèi)存的占用,并循環(huán)求和;
3)使用top獲取相關(guān)pid的cpu列表,并過(guò)濾第10列,求和。
在ubuntu18.04和centos7.9測(cè)試:
# !/bin/bash
# author:robin
# usage: bash proc.sh openresty
if [ -e cpu_mr.log ]
then
rm -f cpu_mr.log
fi
pid_array=(122)
name=$1
if [ -z "$name" ]
then
name="openresty"
fi
#echo $name
#cpucmd: '-p 125 -p 235 -p 568'
cpucmd=''
i=0
#get all pid by proName
funGetPids(){
tempstr=`ps -C $name -o pid=`
#echo $tempstr
for line in $tempstr
do
pid_array[$i]=$line
#echo ${pid_array[$i]}
let "i++"
cpucmd=${cpucmd}" -p $line "
done
return
}
funGetPids
if [ $i -eq 0 ]
then
echo "{\"sum_vmrss\": -1, \"sum_cpu\": -1 }"
exit 0
fi
sum_vmrss=0
sum_cpu=0.0
#compute mem sum
for pid in ${pid_array[@]}
do
vmrss_temp=`cat /proc/$pid/status|grep -e VmRSS|tr -d [:blank:][:alpha:][:]`
#echo 'vmrss_temp= ' $vmrss_temp
sum_vmrss=`expr $sum_vmrss + $vmrss_temp`
done
#echo $cpucmd
tempstr=`top -n 1 $cpucmd |tail -n +8 | awk '{print $10}'`
for line in $tempstr
do
#echo $line
sum_cpu=$(echo "$sum_cpu+$line"|bc)
done
# echo "-------------------"
echo "{\"sum_vmrss\": $sum_vmrss, \"sum_cpu\": $sum_cpu }"
exit
使用方法:
bash proc.sh gnome-shell
輸出json:
{"sum_vmrss": 423712, "sum_cpu": 6.7 }
總結(jié)
到此這篇關(guān)于如何使用shell獲取進(jìn)程名的內(nèi)存以及CPU利用率的文章就介紹到這了,更多相關(guān)shell獲取進(jìn)程名內(nèi)存內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux系統(tǒng)mysql自動(dòng)備份并使用ftp上傳的方法
這篇文章主要介紹了linux系統(tǒng)自動(dòng)導(dǎo)出mysql備份,并上傳到指定ftp,還可以刪除舊的備份文件,大家參考使用吧2014-01-01
對(duì)用戶輸入的判斷的shell實(shí)現(xiàn)代碼
今天的案例是將 對(duì)用戶輸入的判斷的shell腳本,需要的朋友可以參考下2016-08-08
Linux?ps命令詳解及Linux查看進(jìn)程的操作方法
這篇文章主要介紹了Linux?ps命令詳解,Linux查看進(jìn)程的操作方法,ps命令常用的方式有三種,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
Linux下Oracle歸檔日志自動(dòng)清理腳本代碼(sh)
將以下代碼保存為.sh文件,并放到crontab里就可以實(shí)現(xiàn)自動(dòng)清理2013-01-01
Putty實(shí)現(xiàn)自動(dòng)登陸遠(yuǎn)程Linux主機(jī)的方法
這篇文章主要介紹了Putty實(shí)現(xiàn)自動(dòng)登陸遠(yuǎn)程Linux主機(jī)的方法,本文講解的是使用公鑰和密鑰方式實(shí)現(xiàn)自動(dòng)登錄,需要的朋友可以參考下2015-04-04
Shell腳本四則運(yùn)算符號(hào)實(shí)用的技巧和注意事項(xiàng)
這篇文章主要介紹了Shell腳本四則運(yùn)算符號(hào)實(shí)用的技巧和注意事項(xiàng),文中通過(guò)示例代碼介紹了基本的算術(shù)運(yùn)算符號(hào)(加、減、乘、除)、浮點(diǎn)數(shù)運(yùn)算(使用bc命令),以及自增、自減和復(fù)合賦值運(yùn)算符的使用技巧,需要的朋友可以參考下2025-04-04

