大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
Linux查看Java进程PID、端口号和内存占用脚本
背景
正常情况下,一个jps -ml
就可以查看机器上有多少Java
进程以及它们的PID
,如果还要看端口号,甚至内存占用,就还要配合netstat
以及ps
等查询,如果直接使用一个命令就能查出所有信息多好呀,那就试试吧。
查询PID
Java
自带的jps
就很好用,不多说。
查询占用端口
使用netstat
工具,根据Java
进程的PID
查询这个PID
占用的端口,一定是状态为LISTEN
,并且PID/NAME = PID/java
的记录。这在一台机器启多个Java Web
项目的时候很有用,比如测试环境一台机器上的多个spring-boot
项目,没有网关的情况下,经常搞不清到底访问哪个端口。
查询内存占用百分比
感觉机器很卡,free
一下发现内存没了,看看哪个java
占用的内存偏高,可以使用ps -e -o 'pid,pmem'
查询PID
内存占用的百分比。
脚本
vi ~/bin/superJps
##>>>>>>>>>>>>>>>>>>>>>>>file input>>>>>>>>>>>>>>>>>>>>>
#!/bin/bash
# 临时文件路径,保存jps信息
TMP_FILE_PATH=/tmp/superJps.tmp
jps -ml > $TMP_FILE_PATH
# java进程占用的内存总百分比
SUM_PMEM=0
# 展示第一行表头
echo -e "PID\tPORT\tPMEM\tJAR"
# 逐行读入jps内容
while read LINE
do
# 首先转换为数组,第一列是PID,第二列是详细描述
JPS_ARRAY=($LINE)
# 占用端口
PORT=`netstat -nlp | awk '{if($6=="LISTEN" && $7=="'"${JPS_ARRAY[0]}/java"'")print $4}' | awk -F ":" '{print $4}'`
# 占用内存
PMEM=`ps -e -o 'pid,pmem' | sed s/'^\s*'/''/ | egrep "^${JPS_ARRAY[0]}" | awk '{print $2}'`
# 输出
echo -e "${JPS_ARRAY[0]}\t$PORT\t$PMEM%\t${JPS_ARRAY[1]}"
# 内存百分比求和
if [ ! -n "$PMEM" ] ;then
SUM_PMEM=`echo $SUM_PMEM+0|bc`
else
SUM_PMEM=`echo $SUM_PMEM+$PMEM|bc`
fi
done < $TMP_FILE_PATH
# 展示总的内存占用百分比
echo "PMEM_TOTAL: $SUM_PMEM%"
##>>>>>>>>>>>>>>>>>>>>>>>file input>>>>>>>>>>>>>>>>>>>>>
使用
先给可执行权限,root
用户赋最高权限,其他用户赋可读可执行权限:
chmod 755 superJps
可以把路径写到环境变量里,这样就不用每次带路径:
vi /etc/profile
export PATH=$PATH:/root/bin
source /etc/profile
# 使用
[root@dbaasdev01 bin]# superJps
PID PORT PMEM JAR
24337 8761 7.8% /any/path/a.jar
20851 8190 4.4% /any/path/b.jar
13651 9010 7.1% /any/path/c.jar
6565 % sun.tools.jps.Jps
26118 8081 4.1% /any/path/d.jar
8631 8091 4.0% /any/path/e.jar
32375 8088 4.4% /any/path/f.jar
20986 8082 10.2% /any/path/g.jar
14205 9000 9.6% /any/path/h.jar
20909 8084 3.8% /any/path/i.jar
PMEM_TOTAL: 55.4%
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/172498.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...