21.dubbo脚本之dump.sh

#!/bin/bash

cd `dirname $0`

BIN_DIR=`pwd`

cd ..

DEPLOY_DIR=`pwd`

CONF_DIR=$DEPLOY_DIR/conf

SERVER_NAME=`sed ‘/dubbo.application.name/!d;s/.*=//‘ conf/dubbo.properties | tr -d ‘\r‘`

LOGS_FILE=`sed ‘/dubbo.log4j.file/!d;s/.*=//‘ conf/dubbo.properties | tr -d ‘\r‘`

if [ -z "$SERVER_NAME" ]; then

SERVER_NAME=`hostname`

fi

PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk ‘{print $2}‘`

if [ -z "$PIDS" ]; then

    echo "ERROR: The $SERVER_NAME does not started!"

    exit 1

fi

LOGS_DIR=""

if [ -n "$LOGS_FILE" ]; then

LOGS_DIR=`dirname $LOGS_FILE`

else

LOGS_DIR=$DEPLOY_DIR/logs

fi

if [ ! -d $LOGS_DIR ]; then

mkdir $LOGS_DIR

fi

DUMP_DIR=$LOGS_DIR/dump

if [ ! -d $DUMP_DIR ]; then

mkdir $DUMP_DIR

fi

DUMP_DATE=`date +%Y%m%d%H%M%S`

DATE_DIR=$DUMP_DIR/$DUMP_DATE

if [ ! -d $DATE_DIR ]; then

mkdir $DATE_DIR

fi

echo -e "Dumping the $SERVER_NAME ...\c"

for PID in $PIDS ; do

jstack $PID > $DATE_DIR/jstack-$PID.dump 2>&1

echo -e ".\c"

jinfo $PID > $DATE_DIR/jinfo-$PID.dump 2>&1

echo -e ".\c"

jstat -gcutil $PID > $DATE_DIR/jstat-gcutil-$PID.dump 2>&1

echo -e ".\c"

jstat -gccapacity $PID > $DATE_DIR/jstat-gccapacity-$PID.dump 2>&1

echo -e ".\c"

jmap $PID > $DATE_DIR/jmap-$PID.dump 2>&1

echo -e ".\c"

jmap -heap $PID > $DATE_DIR/jmap-heap-$PID.dump 2>&1

echo -e ".\c"

jmap -histo $PID > $DATE_DIR/jmap-histo-$PID.dump 2>&1

echo -e ".\c"

if [ -r /usr/sbin/lsof ]; then

/usr/sbin/lsof -p $PID > $DATE_DIR/lsof-$PID.dump

echo -e ".\c"

fi

done

if [ -r /bin/netstat ]; then

/bin/netstat -an > $DATE_DIR/netstat.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/iostat ]; then

/usr/bin/iostat > $DATE_DIR/iostat.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/mpstat ]; then

/usr/bin/mpstat > $DATE_DIR/mpstat.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/vmstat ]; then

/usr/bin/vmstat > $DATE_DIR/vmstat.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/free ]; then

/usr/bin/free -t > $DATE_DIR/free.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/sar ]; then

/usr/bin/sar > $DATE_DIR/sar.dump 2>&1

echo -e ".\c"

fi

if [ -r /usr/bin/uptime ]; then

/usr/bin/uptime > $DATE_DIR/uptime.dump 2>&1

echo -e ".\c"

fi

echo "OK!"

echo "DUMP: $DATE_DIR"

时间: 2024-08-24 16:13:46

21.dubbo脚本之dump.sh的相关文章

23.dubbo脚本之stop.sh

#!/bin/bash cd `dirname $0` BIN_DIR=`pwd` cd .. DEPLOY_DIR=`pwd` CONF_DIR=$DEPLOY_DIR/conf SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'` if [ -z "$SERVER_NAME" ]; then     SERVER_NAME=`hostname` fi PID

24.dubbo脚本之server.sh

#!/bin/bash cd `dirname $0` if [ "$1" = "start" ]; then ./start.sh else if [ "$1" = "stop" ]; then ./stop.sh else if [ "$1" = "debug" ]; then ./start.sh debug else if [ "$1" = "res

22.dubbo脚本之start.sh

#!/bin/bash cd `dirname $0` BIN_DIR=`pwd` cd .. DEPLOY_DIR=`pwd` CONF_DIR=$DEPLOY_DIR/conf SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'` SERVER_PROTOCOL=`sed '/dubbo.protocol.name/!d;s/.*=//' conf/dubbo.pro

25.dubbo脚本之restart.sh

#!/bin/bash cd `dirname $0` ./stop.sh ./start.sh

linux:执行脚本出现/bin/sh^M: bad interpreter: No such file or directory

问题出在^M,原因是脚本文件的编码格式是dos,有可能是我在window下编辑完了直接传到linux的结果,可以在vim中输入以下命令确认编码格式 :set ff //可以看到dos或unix的字样. 如果的确是dos格式的, 那么你可以用set ff=unix把它强制为unix格式的, 然后存盘退出. 再运行一遍看. 也可以在命令行中用dos2unix指令转换编码 #dos2unix filename linux:执行脚本出现/bin/sh^M: bad interpreter: No suc

Linux下如何将数据库脚本文件从sh格式变为sql格式

在从事软件开发的过程中,经常会涉及到在Linux下将数据库脚本文件从sh格式变为sql格式的问题.本文以一个实际的脚本文件为例,说明格式转换的过程.        1. sh文件内容 本文中的文件名为example.sh,其内容如下: #!/bin/bash function Init() { if [ -f"example.sql" ] then echo"example.sql is exits and is deleting it,then recreate it&qu

1.3-监控子脚本load.sh502.sh讲解

3.示例脚本 load.sh #! /bin/bash ##Writen by aming## load=`uptime |awk -F 'average:' '{print $2}'|cut -d',' -f1|sed 's/ //g' |cut -d. -f1` if [ $load -gt 20 ] && [ $send -eq "1" ] then echo "$addr `date +%T` load is $load" >../lo

【linux】linux脚本中#!/bin/sh的含义

来源:百度知道 #! /bin/sh 是指此脚本使用,/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径.

android init.rc 脚本与linux .sh脚本

安卓.sh和.rc脚本的区别: rc是android初始化的脚本,是用android init language编写,通过init程序来执行任务. sh是linux里面的shell脚本,可以在sh或者bash里面执行任务的.