shell脚本之统计 Linux 进程相关数量信息

目录

一、脚本要求

二、检查本地服务器状态

1.检查系统版本

2.检查系统内核版本

三、配置脚本注释模板

1.编辑 .vimrc 文件

2.检查模板生效情况

四、编写ps_aa.sh脚本

五、查看脚本效果


一、脚本要求

1.统计服务器上各状态进程的数量;
2.列出占用 cpu 最高的前10个进程;
3.占用内存最高的前10个进程。

二、检查本地服务器状态

1.检查系统版本

[root@node ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

2.检查系统内核版本

[root@node ~]# uname -r 
3.10.0-957.el7.x86_64

三、配置脚本注释模板

1.编辑 .vimrc 文件

[root@node ~]# cat .vimrc 
autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"
func SetTitle()
	if expand("%:e")=='sh'
		call setline(1,"#!/bin/bash")
		call setline(2,"##########################################################")
		call setline(3,"#File Name:".expand("%"))
		call setline(4,"#Version:V1.0")
		call setline(5,"#Aurhor:jqzheng")
		call setline(6,"#Emali:[email protected]")
		call setline(7,"#Created Time:".strftime("%F %T"))
		call setline(8,"#Description:")
		call setline(9,"##########################################################")
		call setline(10,"")
	endif
endfunc


[root@node ~]# 

2.检查模板生效情况

#!/bin/bash
##########################################################
#File Name:test.sh
#Version:V1.0
#Aurhor:jqzheng
#Emali:[email protected]
#Created Time:2023-10-31 07:46:42
#Description:
##########################################################


四、编写ps_aa.sh脚本

[root@node ~]# cat ps_aa.sh 
#!/bin/bash
##########################################################
#File Name:ps_aa.sh
#Version:V1.0
#Aurhor:jqzheng
#Emali:[email protected]
#Created Time:2023-10-31 07:46:42
#Description:  Count the number of processes
##########################################################

PROCS=$(ps -axo stat  |wc -l)
RUNNING=$(ps -axo stat |grep R |wc -l)
STOPED=$(ps -axo stat |grep T |wc -l)
SLEEPING=$(ps -axo stat |grep S |wc -l)
ZOMBIE=$(ps -axo stat |grep T |wc -l)
BACKSTAGE=$(ps -axo stat |grep + |wc -l)

echo "进程统计信息如下:"
echo "总进程数量为:$PROCS"
echo "Running 进程数为:$RUNNING"
echo "Stoped 进程数为:$STOPED"
echo "Sleeping 进程数为:$SLEEPING"
echo "Zombie 进程数为:$ZOMBIE"
echo "backstage  进程数为:$BACKSTAGE"
# cpu
echo "###########################################"

echo "占用 cpu 最高的前10个进程:"
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head

# mem
echo "################################################"

echo "占用 mem 最高的前10个进程:"


ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head

五、查看脚本效果

[root@node ~]# sh ps_aa.sh 
进程统计信息如下:
总进程数量为:225
Running 进程数为:1
Stoped 进程数为:1
Sleeping 进程数为:225
Zombie 进程数为:1
backstage  进程数为:7
###########################################
占用 cpu 最高的前10个进程:
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mongod    12433  0.4  1.5 1610824 121692 ?      Sl   03:28   1:19 /usr/bin/mongod -f /etc/mongod.conf
root       9399  0.2  0.7 1108600 56028 ?       Ssl  03:28   0:36 /usr/bin/containerd
root      11884  0.2  1.1 1523996 88824 ?       Ssl  03:28   0:45 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
polkitd   16687  0.1  0.1  52812  9888 ?        Ssl  03:28   0:23 redis-server *:6379
rtkit      8996  0.0  0.0 198792  1812 ?        SNsl 03:28   0:00 /usr/libexec/rtkit-daemon
rpc        8987  0.0  0.0  73648  1380 ?        Ss   03:28   0:00 /sbin/rpcbind -w
root       9588  0.0  0.2 293616 23704 tty1     Ssl+ 03:28   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-7cZ5A4/database -seat seat0 vt1
root       9453  0.0  0.0      0     0 ?        S    08:01   0:00 [kworker/u256:0]
root       9406  0.0  0.0 481316  4524 ?        Ssl  03:28   0:00 /usr/sbin/gdm
root       9405  0.0  0.0  25904   956 ?        Ss   03:28   0:00 /usr/sbin/atd -f
################################################
占用 mem 最高的前10个进程:
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
gdm       13798  0.0  1.6 3297904 131500 ?      Sl   03:28   0:10 /usr/bin/gnome-shell
polkitd   16724  0.0  1.5 1483076 127120 ?      Ssl  03:28   0:13 mysqld --max-allowed-packet=128M --innodb-log-file-size=64M
mongod    12433  0.4  1.5 1610824 121692 ?      Sl   03:28   1:19 /usr/bin/mongod -f /etc/mongod.conf
root      11884  0.2  1.1 1523996 88824 ?       Ssl  03:28   0:45 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
root       9399  0.2  0.7 1108600 56028 ?       Ssl  03:28   0:36 /usr/bin/containerd
root      21541  0.0  0.3 288980 31072 ?        S    03:29   0:01 /usr/sbin/apache2 -f /etc/apache2/apache2.conf -DFOREGROUND
root      16699  0.0  0.3 254360 24496 ?        Ssl  03:28   0:00 node app.js
33        21545  0.0  0.3 291424 27116 ?        S    03:29   0:01 /usr/sbin/apache2 -f /etc/apache2/apache2.conf -DFOREGROUND
root       9588  0.0  0.2 293616 23704 tty1     Ssl+ 03:28   0:00 /usr/bin/X :0 -background none -noreset -audit 4 -verbose -auth /run/gdm/auth-for-gdm-7cZ5A4/database -seat seat0 vt1
root       9395  0.0  0.2 1005808 16832 ?       Ssl  03:28   0:00 /usr/sbin/libvirtd