编写Shell脚本查看Linux当前各用户的cpu和memory消耗

为了方便自己查看CentOS上的各用户cpu和内存的使用比例,写了shell脚本。

viewUsage.sh

#!/bin/bash   #   # view the cpu and memory consumption of each user at the current time.   # chenqy 20101126 v0.9   # chenqy 20110115 v1.0 :   #        added the sort option: --reverse --mem --cpu   function viewconsumption {       ps aux | grep -v 'PID' | sed 's/[ ][ ][ ]*/ /g' | cut -d " " -f1-4 | sort | awk '       BEGIN{           userid = "None"           cpuUsage = 0           memUsage = 0       }       {           if(userid == $1) {               cpuUsage += $3               memUsage += $4           } else {               if (userid != "None") {                   printf("%s %4.1f %4.1f/n", userid, cpuUsage, memUsage)               }              userid = $1              cpuUsage = $3              memUsage = $4           }       }'   }   function printResult {       awk '       BEGIN {           postcolor = "/033[0;39m"       }       {           userid = $1           cpuUsage = $2           memUsage = $3           if(cpuUsage >= 10 || memUsage >= 10) {               # red color               precolor = "/033[0;31m"           }           printf("%s%s /033[12G%4.1f /033[20G%4.1f%s/n", precolor,  userid, cpuUsage, memUsage, postcolor)           precolor = "/033[0;39m"       }'   }   echo -e "USER /033[12G%CPU /033[20G%MEM"   echo    "---------  ------  -----"   if [ "$1" == "--mem" ];then       key="-k 3 -n"   elif [ "$1" == "--cpu" ];then       key="-k 2 -n"   fi   if [ "$1" == "--reverse" -o "$2" == "--reverse" ];then       reverse="-r"   fi   viewconsumption|sed 's/[ ][ ][ ]*/ /g'|sort $key $reverse|printResult  

使用说明:
#以下输出均为“aix.unix-center.net”上的运行结果

1. 不使用参数,直接调用,默认排序为按user名升序,cpu或mem的使用率超过10%时以红色字体显示:
#提示:大写字母开头会排在小写字母开头前面

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/23655.html