Shell之-Tomcat资源检测

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

Tomcat资源检测

首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!
我会在当天或者第二天及时回复,并且改进~~


#!/bin/bash

#空闲内存           JVM         Free_menory
#总内存            JVM         Total_memory
#最大内存           JVM         Max_memory
#最大线程           http-bio    Max_threads
#当前线程数      http-bio    Current_thread_count
#当前繁忙线程数    http-bio    Current_thread_busy
#最大处理时间     http-bio    Max_processing_time
#最短处理时间     http-bio    Processing_time
#请求数            http-bio    Request_count
#错误数            http-bio    Error_count
#接收字节           http-bio    Bytes_received
#发送字节           http-bio    Bytes_sent

#####Get_Resource#####
    function Get_Resource () {
    Free_memory=$(ssh ${Tomcat_Server[$i]} "$curl"          | awk -F'Free memory: ' '{print $2}' | awk -F'Total' '{print $1}')
    Total_memory=$(ssh ${Tomcat_Server[$i]} "$curl"         | awk -F'Total memory: ' '{print $2}' | awk -F'Max memory' '{print $1}')
    Max_memory=$(ssh ${Tomcat_Server[$i]} "$curl"           | awk -F'Max memory: ' '{print $2}' | awk -F'</p>' '{print $1}')
    Max_threads=$(ssh ${Tomcat_Server[$i]} "$curl"          | awk -F'http-bio' '{print $2}' | awk -F'ds: ' '{print $2}' | awk -F' C' '{print $1}')
    Current_thread_count=$(ssh ${Tomcat_Server[$i]} "$curl" | awk -F'http-bio' '{print $2}' | awk -F'count: ' '{print $2}' | awk -F'Current' '{print $1}')
    Current_thread_busy=$(ssh ${Tomcat_Server[$i]} "$curl"  | awk -F'http-bio' '{print $2}' | awk -F'busy: ' '{print $2}' | awk -F'<br>' '{print $1}')
    Max_processing_time=$(ssh ${Tomcat_Server[$i]} "$curl"  | awk -F'http-bio' '{print $2}' | awk -F'Max processing time: ' '{print $2}' | awk -F' Processing' '{print $1}')
    Processing_time=$(ssh ${Tomcat_Server[$i]} "$curl"      | awk -F'http-bio' '{print $2}' | awk -F'Max processing time:' '{print $2}' | awk -F'time: ' '{print $2}' | awk -F' Request' '{print $1}')
    Request_count=$(ssh ${Tomcat_Server[$i]} "$curl"        | awk -F'http-bio' '{print $2}' | awk -F'Request count: ' '{print $2}' | awk -F' Error' '{print $1}')
    Error_count=$(ssh ${Tomcat_Server[$i]} "$curl"          | awk -F'http-bio' '{print $2}' | awk -F'Error count: ' '{print $2}' | awk -F' Bytes' '{print $1}')
    Bytes_received=$(ssh ${Tomcat_Server[$i]} "$curl"       | awk -F'http-bio' '{print $2}' | awk -F'Bytes received: ' '{print $2}' | awk -F' Bytes sent: ' '{print $1}')
    Bytes_sent=$(ssh ${Tomcat_Server[$i]} "$curl"           | awk -F'http-bio' '{print $2}' | awk -F'Bytes sent: ' '{print $2}' | awk -F'</p>' '{print $1}')
}

#####Mysql_Auth#####
User="root"
Pass="p-0p-0p-0"
Host="192.168.0.225"
Date=$(date +%Y-%m-%d-%H-%M)
Tomcat_Path="/usr/local/tomcats"
Tomcat_Server=(192.168.0.223 192.168.0.221 192.168.0.211 192.168.0.209 192.168.0.206  192.168.0.205 192.168.0.203)

function Create_Databse () {
    mysql -u${User} -p${Pass} -h${Host} -e "show databases;" | grep Tomcat_${Database}  &> /dev/null
    if [ ! $? -eq 0 ] ;then
        mysql -u${User} -p${Pass} -h${Host} -e "create database Tomcat_${Database}" &> /dev/null
    fi
}

function Create_Table () {
    Table_Name=$(echo ${Tomcat_List[$n]} |awk -F'-' '{print $1}')
    mysql -u${User} -p${Pass} -h${Host} -e "use Tomcat_${Database};show tables" | grep -w ${Table_Name} &> /dev/null
    if [ ! $? -eq 0 ] ; then
        mysql -u${User} -p${Pass} -h${Host} -e "use Tomcat_${Database};create table ${Table_Name} (Date CHAR(48),Free_memory CHAR(48),Total_memory CHAR(48),Max_memory CHAR(48),Max_threads CHAR(48),Current_thread_count CHAR(48),Currnt_thread_busy CHAR(48),Max_processing_time CHAR(48),Processing_time CHAR(48),Request_count CHAR(48),Error_count CHAR(48),Bytes_received CHAR(48),Bytes_sent CHAR(48));" &>/dev/null
    fi
}

function Insert_Table () {
    mysql -u${User} -p${Pass} -h${Host} -e "insert into Tomcat_${Database}.${Table_Name} Value('$Date','$Free_memory','$Total_memory','$Max_memory','$Max_threads','$Current_thread_count','$Currnt_thread_busy','$Max_processing_time','$Processing_time','$Request_count','$Error_count','$Bytes_received','$Bytes_sent')"
}

for (( i = 0; i < ${#Tomcat_Server[@]}; i++)) 
do
    Database=$(echo ${Tomcat_Server[$i]} | awk -F'.' '{print $NF}')

    Create_Databse

    Tomcat_List=($(ssh ${Tomcat_Server[$i]} ls -l ${Tomcat_Path} | grep ^d | egrep -v "(D:|deploy)" | awk '{print $NF}'))
    for (( n = 0; n < ${#Tomcat_List[@]}; n++))
    do
        Table_Name=$(echo ${Tomcat_List[$n]} |awk -F'-' '{print $1}')
        port=$(ssh ${Tomcat_Server[$i]} "cat $Tomcat_Path/${Tomcat_List[$n]}/conf/server.xml" | egrep 'Connector port=' |egrep -v "(SSL|redir)" | awk -F'"' '{print $2}')
        curl="curl -s -u yunjee:yunjee0515 ${Tomcat_Server[$i]}:$port/manager/status | egrep '<h1>JVM</h1>'"

    Get_Resource

    Create_Table

    Insert_Table    
    done
done

当然,如果需要查看可以通过navicat连接数据库进行查看,也可以通过select 查看表。由于只是通过Shell写的,比较简单,并没有好的呈现出来~~
这里写图片描述

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
40 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 磁盘维护 】Linux 用于检测和标记坏扇区(bad blocks)mbadblocks命令使用教程
【Shell 命令集合 磁盘维护 】Linux 用于检测和标记坏扇区(bad blocks)mbadblocks命令使用教程
27 0
|
3月前
|
缓存 运维 监控
shell监控系统状态和资源使用命令
shell监控系统状态和资源使用命令
57 2
|
25天前
|
Shell
Shell一键检测本地存活ip是否存活
Shell一键检测本地存活ip是否存活
10 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统管理 】Linux 查看和管理系统中的硬件资源 fwhios命令 使用指南
【Shell 命令集合 系统管理 】Linux 查看和管理系统中的硬件资源 fwhios命令 使用指南
30 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
【Shell 命令集合 系统设置 内置命令】⭐⭐Linux 测量程序的执行时间和资源使用情况 time命令 使用指南
33 0
|
1月前
|
存储 安全 Shell
【Shell 命令集合 磁盘维护】Linux 检测和识别硬盘或文件系统中的坏块 badblocks命令使用教程
【Shell 命令集合 磁盘维护】Linux 检测和识别硬盘或文件系统中的坏块 badblocks命令使用教程
38 0
|
2月前
|
运维 Java 应用服务中间件
Tomcat安装shell脚本
Tomcat安装shell脚本
33 7
|
8月前
|
Shell
Shell VSCode 基本开发插件(语法提示、错误检测、格式化、运行代码)
Shell VSCode 基本开发插件(语法提示、错误检测、格式化、运行代码)
433 0
|
9月前
|
Java 应用服务中间件 Linux
jdk自带的javaVisualVM检测tomcat
在我本地(windows系统)找到jdk中的bin目录,找到jvisualvm.exe双击运行,本地如果有tomcat正在启动,直接进行查看就行,不过我想查看远程linux系统中的tomcat