#!/bin/sh
#
# WebLogic Server Runtime Monitor
# Auth:liaos
# Date:2009-11-12
#
username="weblogic"
password="weblogic"
admserv_ip="localhost"
admserv_port="7001"
domain_name="domain"
wl_jar="/bea/weblogic/server/lib/weblogic.jar"
_get_server_list() {
server_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$admserv_ip":"$admserv_port" -username "$username" -password "$password" GET -pretty -type Server -property Name -property ListenAddress -property ListenPort | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if (NR%3 != 0) ORS=","; else ORS="\n"; print} ' `
}
_get_server_property() {
server_property=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password "$password" GET -pretty -type ServerRuntime -property Name -property State | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' `
}
_get_server_name() {
_get_server_property $1 $2
server_name=`echo "$server_property" | grep "Name" | awk -F':' '{print $2}'`
}
_get_server_state() {
_get_server_property $1 $2
server_state=`echo "$server_property" | grep "State" | awk -F':' '{print $2}'`
}
_get_queue_list() {
queue_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password "$password" GET -pretty -type ExecuteQueueRuntime -property Name -property ExecuteThreadCurrentIdleCount -property ExecuteThreadTotalCount | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if (NR%3 != 0) ORS=","; else ORS="\n"; print} ' | grep -v 'weblogic' | grep -v 'wl' | grep -v 'Jms' | grep -v 'Manager' | awk '{print $0}' `
}
_get_server_jvm() {
server_jvm=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$2":"$3" -username "$username" -password "$password" GET -pretty -mbean "$domain_name:ServerRuntime=$1,Name=$1,Type=JVMRuntime,Location=$1" -property HeapFreePercent | grep "HeapFreePercent" | awk -F ':' '{print $2}'`
}
_get_pool_list() {
pool_list=`/usr/java6_64/bin/java -cp "$wl_jar" weblogic.Admin -url t3://"$1":"$2" -username "$username" -password "$password" GET -pretty -type JDBCConnectionPoolRuntime -property Name -property ActiveConnectionsCurrentCount -property Properties -property State -property MaxCapacity | grep -v -e '^[-]' | grep -v 'MBeanName' | sed -e 's/ //g' | sed -e 's/^[^\w]//g' | awk '{print $0}' | awk '{ if ( NR%5 !=0 ) ORS=","; else ORS="\n"; print}' `
}
_get_server_info() {
if [ -n "$1" -a -n "$2" ] ; then
_get_server_name $1 $2
server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else
_get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tListenAddress\tListenPort\tRunState\tFreeMemoryPercent"
for server in $server_list
do
server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
if [ -z "$server_ip" ] ; then
server_ip="$admserv_ip"
fi
_get_server_state $server_ip $server_port
_get_server_jvm $server_name $server_ip $server_port
echo "$server_name\t$server_ip\t$server_port\t\t$server_state\t\t$server_jvm"
done
fi
}
_get_queue_info() {
if [ -n "$1" -a -n "$2" ] ; then
_get_server_name $1 $2
server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else
_get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tQueueName\tIdelThreads\tTotalThreads"
for server in $server_list
do
server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
if [ -z "$server_ip" ] ; then
server_ip="$admserv_ip"
fi
_get_queue_list $server_ip $server_port
for queue in $queue_list
do
thread_idel=`echo "$queue" | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
thread_total=`echo "$queue" | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
queue_name=`echo "$queue" | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
echo "$server_name\t$queue_name\t\t$thread_idel\t\t$thread_total"
done
done
fi
}
_get_pool_info() {
if [ -n "$1" -a -n "$2" ] ; then
_get_server_name $1 $2
server_list=`echo "ListenAddress:$1,ListenPort:$2,Name:$server_name"`
else
_get_server_list
fi
if [ -n "$server_list" ] ; then
echo "ServerName\tDataSource\tProperties\tState\tCurrentCount\tMaxCapacity"
for server in $server_list
do
server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
server_name=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
if [ -z "$server_ip" ] ; then
server_ip="$admserv_ip"
fi
_get_pool_list $server_ip $server_port
for pool in $pool_list
do
current_count=`echo "$pool" | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
max_capacity=`echo "$pool" | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
datasource=`echo "$pool" | awk -F ',' '{print $3}' | awk -F ':' '{print $2}'`
db_user=`echo "$pool" | awk -F ',' '{print $4}' | awk -F ':' '{print $2}'`
pool_state=`echo "$pool" | awk -F ',' '{print $5}' | awk -F ':' '{print $2}'`
echo "$server_name\t$datasource\t$db_user\t$pool_state\t\t$current_count\t\t$max_capacity"
done
done
fi
}
list() {
_get_server_list
if [ -n "$server_list" ] ; then
echo "ServerName\tListenAddress\tListenPort"
for server in $server_list
do
server_ip=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $1}' | awk -F ':' '{print $2}'`
server_port=`echo "$server" | sed -e 's/ //g' | awk -F ',' '{print $2}' | awk -F ':' '{print $2}'`
if [ -z "$server_ip" ] ; then
server_ip="$admserv_ip"
fi
_get_server_name $server_ip $server_port
echo "$server_name\t$server_ip\t$server_port"
done
fi
}
go_server_info() {
if [ "$#" -eq 3 ] ; then
_get_server_info $2 $3
else
_get_server_info
fi
exit 0;
}
go_queue_info() {
if [ "$#" -eq 3 ] ; then
_get_queue_info $2 $3
else
_get_queue_info
fi
exit 0;
}
go_pool_info() {
if [ "$#" -eq 3 ] ; then
_get_pool_info $2 $3
else
_get_pool_info
fi
exit 0;
}
help() {
cat <<EOF
wlsm -- WebLogic Server Monitor
USAGE: wlsm.sh [-h] [-l] [-s] [-q] [-p] [listen_address] [listen_port]
OPTIONS: -h help text.
-l list all server info,
-s [listen_address,listen_port] for runtime state of server,
-q [listen_address,listen_port] for queue thread state of server,
-p [listen_address,listen_port] for connection pool state of server,
EXAMPLE: wlsm.sh -s 10.131.54.11 8080
EOF
exit 0;
}
while [ -n "$1" ]; do
case $1 in
-h) help; exit 0;;
-l) list; exit 0;;
-s*) go_server_info $1 $2 $3; shift 1;;
-q*) go_queue_info $1 $2 $3; shift 1;;
-p*) go_pool_info $1 $2 $3; shift 1;;
-*) echo "error : no such option $1. -h for help"; exit 0;;
*) break;;
esac
done
if [ -z "$1" ] ; then
help; exit 0;;
fi
分享到:
相关推荐
2000-2021年中国科技统计年鉴(分省年度)面板数据集-最新更新.zip
PPT保护工具PDFeditor专业版-精心整理.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
考研英语真题及详解-精心整理.zip
Jupyter-Notebook
全国电子地图行政区划道路水系数据-最新shp.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
地级市进出口贸易及外资利用数据(297城)-最新.zip
HengCe-18900-2024-2030中国皮革制品市场现状研究分析与发展前景预测报告-样本.docx
猪脚饭超好吃 java制作的小游戏,作为巩固java知识之用.zip
【基于Python的大麦网自动抢票工具的设计与实现】 随着互联网技术的发展,网络购票已经成为人们生活中不可或缺的一部分。尤其是在文化娱乐领域,如音乐会、演唱会、戏剧等活动中,热门演出的门票往往在开售后瞬间就被抢购一空。为了解决这个问题,本论文探讨了一种基于Python的自动抢票工具的设计与实现,旨在提高购票的成功率,减轻用户手动抢票的压力。 Python作为一种高级编程语言,因其简洁明了的语法和丰富的第三方库,成为了开发自动化工具的理想选择。Python的特性使得开发过程高效且易于维护。本论文深入介绍了Python语言的基础知识,包括数据类型、控制结构、函数以及模块化编程思想,这些都是构建抢票工具的基础。 自动化工具在现代社会中广泛应用,尤其在网络爬虫、自动化测试等领域。在抢票工具的设计中,主要利用了自动化工具的模拟用户行为、数据解析和定时任务等功能。本论文详细阐述了如何使用Python中的Selenium库来模拟浏览器操作,通过识别网页元素、触发事件,实现对大麦网购票流程的自动化控制。同时,还讨论了BeautifulSoup和requests库在抓取和解析网页数据中的应用。 大麦网作为国内知名的票务平台,其网站结构和购票流程对于抢票工具的实现至关重要。论文中介绍了大麦网的基本情况,包括其业务模式、用户界面特点以及购票流程,为工具的设计提供了实际背景。 在系统需求分析部分,功能需求主要集中在自动登录、监控余票、自动下单和异常处理等方面。抢票工具需要能够自动填充用户信息,实时监控目标演出的票务状态,并在有票时立即下单。此外,为了应对可能出现的网络延迟或服务器错误,工具还需要具备一定的错误恢复能力。性能需求则关注工具的响应速度和稳定性,要求在大量用户同时使用时仍能保持高效运行。 在系统设计阶段,论文详细描述了整体架构,包括前端用户界面、后端逻辑处理以及与大麦网交互的部分。在实现过程中,采用了多线程技术以提高并发性,确保在抢票关键环节的快速响应。此外,还引入了异常处理机制,以应对网络故障或程序错误。 测试与优化是确保抢票工具质量的关键步骤。论文中提到了不同场景下的测试策略,如压力测试、功能测试和性能测试,以验证工具的有效性和稳定性。同时,通过对抢票算法的不断优化,提高工具的成功率。 论文讨论了该工具可能带来的社会影响,包括对消费者体验的改善、对黄牛现象的抑制以及可能引发的公平性问题。此外,还提出了未来的研究方向,如增加多平台支持、优化抢票策略以及考虑云服务的集成,以进一步提升抢票工具的实用性。 本论文全面介绍了基于Python的大麦网自动抢票工具的设计与实现,从理论到实践,从需求分析到系统优化,为读者提供了一个完整的开发案例,对于学习Python编程、自动化工具设计以及理解网络购票市场的运作具有重要的参考价值。
校园驿站全天候辅助取货管理系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
1970年至2010年美国所有乳制品的供应和利用情况
java基础 java_leetcode题解之Possible Bipartition.java
该开源项目为阿里巴巴数据库事业部精心打造的druid连接池设计源码,包含4689个文件,涵盖4069个Java源文件、297个SQL脚本、102个文本文件以及其他多种文件类型。druid连接池以其独特的监控功能,旨在为数据库连接管理提供高效、可靠的解决方案。项目文件类型丰富,包括HTML、JavaScript、CSS和Shell脚本等,适用于多种开发需求。
Jupyter-Notebook
金融风险管理计算手册(CoVaR)最新版.zip
网上选课系统 SSM毕业设计 附带论文 启动教程:https://www.bilibili.com/video/BV1GK1iYyE2B
Jupyter-Notebook
Jupyter-Notebook