一、通过进程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