企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 监控虚拟机内存,线程,类等脚本实例 **简介:** 以下脚本功能为监控某虚拟机进程的内存、线程、类和启动配置等并记录到对应的日志文件里。 **注意事项:** 1. 请先更改代码区的虚拟机名字、日志存放的路径和jdk的路径等参数。 2. 请将以下代码写入一个.sh文件,该文件可直接执行(不会持续记录)也可定时执行(有关Linux定时任务设置请查看本书的章节:Linux定时任务)。 ~~~ #!/bin/bash ###############程序区################ #注意:在执行此程序前请先确认需要监控的虚拟机名称(jvmname)和jdk安装路径(jdkpath)! #此命令可查看当前服务器所有运行的虚拟机: jps jvmname=Main #要监控的虚拟机的名字 logpath=/root/Desktop #日志存放的路径 #jdkpath=$(echo $JAVA_HOME | awk '{print $1}') #jdkpath=$(which java) #jdkpath=${jdkpath%/*} jdkpath=/usr/JDK/jdk1.7.0_79/bin #jdk的路径 #拿到进程ID并赋给变量 pid=$($jdkpath/jps | grep $jvmname | awk '{print $1}') #查看指定java程序内存使用情况(需要定时) date >>/root/Desktop/heap.log $jdkpath/jmap -heap $pid >>$logpath/heap.log #输出类的装载卸载总空间等情况(可以定时) date >>/root/Desktop/class.log $jdkpath/jstat -class $pid >>$logpath/class.log #查看Java的配置信息(需要定时) date >>/root/Desktop/flag.log $jdkpath/jinfo -flags $pid >>$logpath/flag.log #查看指定虚拟机的线程情况(需要定时) date >>/root/Desktop/thread.log $jdkpath/jstack -F $pid >>$logpath/thread.log ###############-笔记################# #查看指定java程序cpu使用情况 top -p pid -H #查看指定java程序内存使用情况 jmap -heap 12733 #1.jps | grep '查找字符串'(写的时候去掉单引号) #2.ctrl+c可以终止程序运行 #3.监控java线程数: #ps -eLf | grep java | wc -l #4.监控网络客户连接数: #netstat -n | grep tcp | grep 侦听端口 | wc -l #5.less 文件名 查看文件 #6.ctrl+z 可以退出正在阅读的文件以及正在运行的程序 #7.赋值语法 #aaa=$(命令) #8.杀死指定的进程(名字) #jps | grep 名字 | grep -v grep | awk '{print "kill -9 "$1}' | sh #9. # ~~~