Linux采集服务器内存磁盘及JVM程序信息脚本

Posted HiveDark

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux采集服务器内存磁盘及JVM程序信息脚本相关的知识,希望对你有一定的参考价值。

#!/bin/bash
# desc: 用于采集服务器的基本信息并调用相关接口传递数据

# 定义请求URL参数,如果有这个url则发起post请求把服务器的信息传递出去
requrl=
if [ $1 ];then
  requrl=$1
  echo "设置请求url:$requrl"
fi
curtime=`date +"%Y-%m-%d %H:%M:%S"`
# 获取服务器的名称、CPU
server=`uname -a | awk -F' ' 'print $1"-"$2"-"$3'`
# 获取服务器的IP地址
serverinfo=`/usr/sbin/ifconfig | grep inet | awk -F' ' 'BEGINstr=""if($2 != "::1" && $2 != "127.0.0.1")if("" == str)str=$2elsestr=str","$2 ENDprint str'`
# 获取内存使用情况
meminfo=`free -mh | grep Mem | awk -F' ' 'print "total:"$2",used:"$3",free:"$4'`
# 获取磁盘使用情况
diskinfo=`df -mh | awk -F' ' 'BEGINi=0;ret=""if(i > 0)ret=ret"路径:"$6",可用空间:"$4",已使用:"$5";"i=i+1;ENDprint ret'`
# 获取JVM进程情况
jvminfo=`/usr/local/java/jdk/bin/jps -l | awk -F' ' 'BEGINret=""ret=ret"pid="$1",main="$2";"ENDprint ret'`
# 输出相关日志
echo curtime: $curtime
echo server: $server
echo serverinfo: $serverinfo
echo meminfo: $meminfo
echo diskinfo: $diskinfo
echo jvminfo: $jvminfo

# 发起请求数据
if [ $requrl ];then
   curl -H "Content-Type: application/json" -X POST -d "\\"curtime\\":$curtime,\\"server\\":$server,\\"serverinfo\\":$serverinfo,\\"meminfo\\":$meminfo,\\"diskinfo\\":$diskinfo,\\"jvminfo\\":$jvminfo" $requrl
   echo "请求成功,$requrl"
fi

 

以上是关于Linux采集服务器内存磁盘及JVM程序信息脚本的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本案例(采集系统cpu内存磁盘网络信息)

shell脚本案例(采集系统cpu内存磁盘网络信息)

技能篇:linux服务性能问题排查及jvm调优思路

UAVStack JVM监控分析工具:图形化展示采集及分析监控数据

优化采集linux系统详情脚本

Linux(三十二) 针对LINUX服务器的指标监控脚本编写