欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何使用shell獲取進程名的內(nèi)存以及CPU利用率

 更新時間:2022年04月17日 16:12:51   作者:飛鳥真人  
最近工作中遇到一個需求,需要找出占用高的進程,所以下面這篇文章主要給大家介紹了關于如何使用shell獲取進程名的內(nèi)存以及CPU利用率的相關資料,需要的朋友可以參考下

原理:

1)使用ps得到進程名的所有進程pid

ps -C process_name  -o pid=

2) 使用 /proc/$pid/status獲得內(nèi)存的占用,并循環(huán)求和;

3)使用top獲取相關pid的cpu列表,并過濾第10列,求和。

在ubuntu18.04和centos7.9測試:

# !/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 }

總結

到此這篇關于如何使用shell獲取進程名的內(nèi)存以及CPU利用率的文章就介紹到這了,更多相關shell獲取進程名內(nèi)存內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • linux echo命令以及l(fā)inux echo命令提示權限不夠的解決辦法

    linux echo命令以及l(fā)inux echo命令提示權限不夠的解決辦法

    linux的echo命令, 在shell編程中極為常用, 在終端下打印變量value的時候也是常常用到的, 因此有必要了解下echo的用法。下面通過本文給大家介紹linux echo命令以及l(fā)inux echo命令提示權限不夠的解決辦法,感興趣的朋友一起看看吧
    2017-09-09
  • Linux系統(tǒng)中掩耳盜鈴的sudo配置

    Linux系統(tǒng)中掩耳盜鈴的sudo配置

    這篇文章主要介紹了Linux系統(tǒng)中掩耳盜鈴的sudo配置的相關資料,需要的朋友可以參考下
    2015-09-09
  • linux mkdir命令詳解

    linux mkdir命令詳解

    Mkdir 是一個用來在 Linux 系統(tǒng)下創(chuàng)建目錄的命令。此命令屬于內(nèi)建命令。接下來通過本文給大家分享linux mkdir命令詳解,感興趣的朋友一起看看吧
    2017-09-09
  • shell遍歷目錄處理特定目錄的腳本代碼

    shell遍歷目錄處理特定目錄的腳本代碼

    刪除文件,目錄結構為:ip/年份/月份,每個人都有一份這樣的目錄現(xiàn)需要刪除2012年以前的所有文件,2012年以后的刪除特定月份
    2013-02-02
  • Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量

    Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量

    這篇文章主要介紹了Linux Shell腳本系列教程(四):使用函數(shù)添加環(huán)境變量,本文對環(huán)境變量的一知識作了介紹,并給出普通添加環(huán)境變量和使用函數(shù)添加環(huán)境變量的方法,需要的朋友可以參考下
    2015-06-06
  • 一個ping檢測告警函數(shù)代碼

    一個ping檢測告警函數(shù)代碼

    一個ping腳本,服務器通用告警函數(shù)。在沒有 nagios 的情況下,這個暫且可以用來作為服務器告警使用
    2013-02-02
  • shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法

    shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法

    今天小編就為大家分享一篇shell 遞歸遍歷目錄下的所有文件并統(tǒng)一改名的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Linux 下的 unzip 命令使用示例詳解

    Linux 下的 unzip 命令使用示例詳解

    Unzip 是一個在 Unix 或類 Unix 系統(tǒng)(例如 Linux)中常用的命令行工具,用于解壓縮由 ZIP 壓縮算法創(chuàng)建的壓縮文件,本文給大家介紹Linux 下的 unzip 命令使用示例詳解,感興趣的朋友一起看看吧
    2023-11-11
  • Shell正則表達式學習筆記

    Shell正則表達式學習筆記

    正則表達式是一種表示方式,可以讓你查找匹配特定的準則的文本,例如以字母a開頭的文件,學好正則表達式將使以后的文本處理變得方便,快速,本文給大家介紹shell正則表達式學習筆記,對shell正則表達式相關知識感興趣的朋友一起學習吧
    2015-12-12
  • shell中if條件判斷的實現(xiàn)

    shell中if條件判斷的實現(xiàn)

    本文主要介紹了shell中if條件判斷的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論