一、根据PID过滤进程所有信息

#!/bin/bash
# Function: 根据用户输入的PID,过滤出该PID所有的信息
read -p "请输入要查询的PID:" P
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}' | cut -d'%' -f1)"
echo "内存占用率:$(ps -aux | awk '$2~/^'$P'$/{print $4}' | cut -d'%' -f1)"
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 "--------------------------------"

二、根据进程名过滤进程信息会显示出该进程名包含的所有线程

优秀的 Shell 运维脚本

优秀的 Shell 运维脚本

#!/bin/bash
# Function: 根据输入的程序的名字过滤出所对应的PID,并显示出详细信息,如果有几个PID,则全部显示
read -p "请输入要查询的进程名:" NAME
N=$(ps -aux | grep "$NAME" | grep -v grep | wc -l) ## 统计进程总数
if [ $N -le 0 ]; then
echo "该进程名没有运行!"
fi
i=1
while [ $N -gt 0 ]; do
echo "进程PID: $(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$2}")"
echo "进程命令:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$11}")"
echo "进程所属用户: $(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$1}")"
echo "CPU占用率:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$3}")%"
echo "内存占用率:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$4}")%"
echo "进程开始运行的时刻:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$9}")"
echo "进程运行的时间:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$10}")"
echo "进程状态:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$8}")"
echo "进程虚拟内存:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$5}")"
echo "进程共享内存:$(ps -aux | grep "$NAME" | grep -v grep | awk "NR==$i {print \$6}")"
echo " ***"
let N--
i
done

三、根据用户名查询该用户的相关信息

#!/bin/bash
# Function: 根据用户名查询该用户的相关信息
read -p "请输入要查询的用户名:" USER
echo "用户名:$USER"
echo "用户ID:$(id -u $USER)"
echo "用户组ID:$(id -g $USER)"
echo "用户的登录Shell:$(getent passwd $USER | cut -d: -f7)"
echo "用户的家目录:$(getent passwd $USER | cut -d: -f6)"
echo "用户的主目录大小:$(du -sh ~$USER 2>/dev/null | cut -f1)"
本文主题词:

常用shell运维脚本,运维shell脚本编程100例,运维shell脚本经典实例,运行shell脚本,跟老男孩学linux运维:shell编程实战,shell自动化运维,shell脚本运行环境,linux运维常用脚本,简述运行shell脚本的四种方法,shell脚本vi

点赞(25) 打赏

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部