Linux查询进程信息脚本

一、通过进程ID查询

  • 将脚本保存为pid.sh文件
# !bin/bash

# 命令行参数获取进程ID
P=$1

# 命令行无参数,手动输入
if [ ! $P ]; then
  read -p "请输入查询的PID:" P
fi

# 判断进程是否存在
n=`ps -aux|awk '$2~/^'$P'$/{print $11}'|wc -l`
if [ $n -eq 0 ]; then
  echo "该PID不存在!!"
  exit
fi

# 输出进程信息
echo "--------------------------------"
echo "进程PID:$P"
echo "进程命令:`ps -aux| awk '$2~/^'$P'$/{print$11}'`"
echo "进程所属用户: `ps -aux| awk '$2~/^'$P'$/{print$1}'`"
echo "CPU占用率:`ps -aux| awk '$2~/^'$P'$/{print$3}'`%"
echo "内存占用率:`ps -aux| awk '$2~/^'$P'$/{print$4}'`%"
echo "进程开始运行的时刻:`ps -aux| awk '$2~/^'$P'$/{print$9}'`"
echo "进程运行的时间:`ps -aux| awk '$2~/^'$P'$/{print$10}'`"
echo "进程状态:`ps -aux| awk '$2~/^'$P'$/{print$8}'`"
echo "进程虚拟内存:`ps -aux| awk '$2~/^'$P'$/{print$5}'`"
echo "进程共享内存:`ps -aux| awk '$2~/^'$P'$/{print$6}'`"
echo "--------------------------------"
  • 使用
./pid.sh 1
--------------------------------
进程PID:1
进程命令:/usr/lib/systemd/systemd
进程所属用户: root
CPU占用率:0.0%
内存占用率:0.0%
进程开始运行的时刻:2020
进程运行的时间:45:50
进程状态:Ss
进程虚拟内存:191276
进程共享内存:2896
--------------------------------

./pid.sh 
请输入查询的PID:1
--------------------------------
进程PID:1
进程命令:/usr/lib/systemd/systemd
进程所属用户: root
CPU占用率:0.0%
内存占用率:0.0%
进程开始运行的时刻:2020
进程运行的时间:45:50
进程状态:Ss
进程虚拟内存:191276
进程共享内存:2896
--------------------------------

二、通过进程名查询

  • 将脚本保存为name.sh文件
# !bin/bash

# 命令行参数获取进程名
NAME=$1

# 命令行无参数,手动输入
if [ ! $NAME ]; then
  read -p "请输入查询的PID:" NAME
fi

# 判断进程是否存在
N=`ps -aux | grep $NAME| grep -v grep | wc -l`
if [ $N -le 0 ]; then
  echo "该进程名没有运行!"
  exit
fi

i=1
while [ $N -gt 0 ];do
  echo "进程PID: `ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$2}'`"
  echo "进程命令:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$11}'`"
  echo "进程所属用户: `ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$1}'`"
  echo "CPU占用率:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$3}'`%"
  echo "内存占用率:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$4}'`%"
  echo "进程开始运行的时刻:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$9}'`"
  echo "进程运行的时间:`  ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$11}'`"
  echo "进程状态:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$8}'`"
  echo "进程虚拟内存:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$5}'`"
  echo "进程共享内存:`ps -aux | grep $NAME| grep -v grep | awk 'NR=='$i'{print$0}'| awk '{print$6}'`"
  echo "***************************************************************"
  let N-- i++
done
  • 使用
./name.sh mongod
进程PID: 23493
进程命令:mongod
进程所属用户: polkitd
CPU占用率:0.3%
内存占用率:3.8%
进程开始运行的时刻:Feb20
进程运行的时间:mongod
进程状态:SLsl
进程虚拟内存:2097836
进程共享内存:299936

./name.sh 
请输入查询的PID:mongod
进程PID: 23493
进程命令:mongod
进程所属用户: polkitd
CPU占用率:0.3%
内存占用率:3.8%
进程开始运行的时刻:Feb20
进程运行的时间:mongod
进程状态:SLsl
进程虚拟内存:2097836
进程共享内存:299936

本文参考:https://www.jianshu.com/p/a984a0930700

0%