[monitor]采集器编译打包脚本,启动关闭脚本初始化
This commit is contained in:
44
assembly/collector/assembly.xml
Normal file
44
assembly/collector/assembly.xml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd
|
||||||
|
http://maven.apache.org/ASSEMBLY/2.0.0 ">
|
||||||
|
<!--必填,会追加到打包文件名称的末尾-->
|
||||||
|
<id>1.0</id>
|
||||||
|
<!--打包类型,可以设置多种类型,打包的时候不同的类型都会打包打出来-->
|
||||||
|
<formats>
|
||||||
|
<format>tar.gz</format>
|
||||||
|
<format>zip</format>
|
||||||
|
</formats>
|
||||||
|
|
||||||
|
<!--文件相关设置-->
|
||||||
|
<fileSets>
|
||||||
|
<!--bin文件下的所有脚本文件输出到打包后的bin目录下-->
|
||||||
|
<fileSet>
|
||||||
|
<directory>../../assembly/collector/bin</directory>
|
||||||
|
<!-- 是否进行属性替换 即使用 ${project.artifactId} -->
|
||||||
|
<filtered>true</filtered>
|
||||||
|
<outputDirectory>bin</outputDirectory>
|
||||||
|
</fileSet>
|
||||||
|
|
||||||
|
<!-- src/main/resources目录下配置文件打包到config目录下 -->
|
||||||
|
<fileSet>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<includes>
|
||||||
|
<include>application.yml</include>
|
||||||
|
<include>logback-spring.xml</include>
|
||||||
|
</includes>
|
||||||
|
<!-- 是否进行属性替换 即使用 ${project.artifactId} -->
|
||||||
|
<filtered>true</filtered>
|
||||||
|
<outputDirectory>${file.separator}config</outputDirectory>
|
||||||
|
</fileSet>
|
||||||
|
|
||||||
|
<!-- 将target目录下的启动jar打包到目录下-->
|
||||||
|
<fileSet>
|
||||||
|
<directory>target</directory>
|
||||||
|
<outputDirectory>/</outputDirectory>
|
||||||
|
<includes>
|
||||||
|
<include>*executable.jar</include>
|
||||||
|
</includes>
|
||||||
|
</fileSet>
|
||||||
|
</fileSets>
|
||||||
|
</assembly>
|
||||||
18
assembly/collector/bin/shutdown.sh
Normal file
18
assembly/collector/bin/shutdown.sh
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 项目名称
|
||||||
|
APPLICATION="${project.artifactId}"
|
||||||
|
|
||||||
|
# 项目启动jar包名称
|
||||||
|
APPLICATION_JAR="${project.build.finalName}.jar"
|
||||||
|
|
||||||
|
# 通过项目名称查找到PI,然后kill -9 pid
|
||||||
|
PID=$(ps -ef | grep "${APPLICATION_JAR}" | grep -v grep | awk '{ print $2 }')
|
||||||
|
if [[ -z "$PID" ]]
|
||||||
|
then
|
||||||
|
echo ${APPLICATION} is already stopped
|
||||||
|
else
|
||||||
|
echo kill ${PID}
|
||||||
|
kill -9 ${PID}
|
||||||
|
echo ${APPLICATION} stopped successfully
|
||||||
|
fi
|
||||||
109
assembly/collector/bin/startup.sh
Normal file
109
assembly/collector/bin/startup.sh
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 项目名称
|
||||||
|
SERVER_NAME="${project.artifactId}"
|
||||||
|
|
||||||
|
# jar名称
|
||||||
|
JAR_NAME="${project.build.finalName}-executable.jar"
|
||||||
|
|
||||||
|
# 进入bin目录
|
||||||
|
cd `dirname $0`
|
||||||
|
# bin目录绝对路径
|
||||||
|
BIN_DIR=`pwd`
|
||||||
|
# 返回到上一级项目根目录路径
|
||||||
|
cd ..
|
||||||
|
# 打印项目根目录绝对路径
|
||||||
|
# `pwd` 执行系统命令并获得结果
|
||||||
|
DEPLOY_DIR=`pwd`
|
||||||
|
|
||||||
|
# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
|
||||||
|
# 如果指定的是目录,spring则会读取目录中的所有配置文件
|
||||||
|
CONF_DIR=$DEPLOY_DIR/config
|
||||||
|
# SERVER_PORT=`sed '/server.port/!d;s/.*=//' config/application.properties | tr -d '\r'`
|
||||||
|
# 获取应用的端口号
|
||||||
|
SERVER_PORT=`sed -nr '/port: [0-9]+/ s/.*port: +([0-9]+).*/\1/p' config/application.yml`
|
||||||
|
|
||||||
|
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
|
||||||
|
if [ "$1" = "status" ]; then
|
||||||
|
if [ -n "$PIDS" ]; then
|
||||||
|
echo "The $SERVER_NAME is running...!"
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "The $SERVER_NAME is stopped"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PIDS" ]; then
|
||||||
|
echo "ERROR: The $SERVER_NAME already started!"
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SERVER_PORT" ]; then
|
||||||
|
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
|
||||||
|
if [ $SERVER_PORT_COUNT -gt 0 ]; then
|
||||||
|
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 项目日志输出绝对路径
|
||||||
|
LOGS_DIR=$DEPLOY_DIR/logs
|
||||||
|
# 如果logs文件夹不存在,则创建文件夹
|
||||||
|
if [ ! -d $LOGS_DIR ]; then
|
||||||
|
mkdir $LOGS_DIR
|
||||||
|
fi
|
||||||
|
STDOUT_FILE=$LOGS_DIR/catalina.log
|
||||||
|
|
||||||
|
# JVM Configuration
|
||||||
|
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
|
||||||
|
JAVA_DEBUG_OPTS=""
|
||||||
|
if [ "$1" = "debug" ]; then
|
||||||
|
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
|
||||||
|
fi
|
||||||
|
|
||||||
|
JAVA_JMX_OPTS=""
|
||||||
|
if [ "$1" = "jmx" ]; then
|
||||||
|
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
|
||||||
|
fi
|
||||||
|
|
||||||
|
JAVA_MEM_OPTS=""
|
||||||
|
BITS=`java -version 2>&1 | grep -i 64-bit`
|
||||||
|
if [ -n "$BITS" ]; then
|
||||||
|
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
|
||||||
|
else
|
||||||
|
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 加载外部log4j2文件的配置
|
||||||
|
LOG_IMPL_FILE=log4j2.xml
|
||||||
|
LOGGING_CONFIG=""
|
||||||
|
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
|
||||||
|
then
|
||||||
|
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
|
||||||
|
fi
|
||||||
|
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
|
||||||
|
echo -e "Starting the $SERVER_NAME ..."
|
||||||
|
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/lib/$JAR_NAME > $STDOUT_FILE 2>&1 &
|
||||||
|
|
||||||
|
COUNT=0
|
||||||
|
while [ $COUNT -lt 1 ]; do
|
||||||
|
echo -e ".\c"
|
||||||
|
sleep 1
|
||||||
|
if [ -n "$SERVER_PORT" ]; then
|
||||||
|
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
|
||||||
|
else
|
||||||
|
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
|
||||||
|
fi
|
||||||
|
if [ $COUNT -gt 0 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
echo "OK!"
|
||||||
|
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
echo "STDOUT: $STDOUT_FILE"
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 项目名称
|
||||||
|
APPLICATION="${project.artifactId}"
|
||||||
|
|
||||||
|
# 项目启动jar包名称
|
||||||
|
APPLICATION_JAR="${project.build.finalName}.jar"
|
||||||
|
|
||||||
|
# 通过项目名称查找到PI,然后kill -9 pid
|
||||||
|
PID=$(ps -ef | grep "${APPLICATION_JAR}" | grep -v grep | awk '{ print $2 }')
|
||||||
|
if [[ -z "$PID" ]]
|
||||||
|
then
|
||||||
|
echo ${APPLICATION} is already stopped
|
||||||
|
else
|
||||||
|
echo kill ${PID}
|
||||||
|
kill -9 ${PID}
|
||||||
|
echo ${APPLICATION} stopped successfully
|
||||||
|
fi
|
||||||
@@ -0,0 +1,109 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 项目名称
|
||||||
|
SERVER_NAME="${project.artifactId}"
|
||||||
|
|
||||||
|
# jar名称
|
||||||
|
JAR_NAME="${project.build.finalName}.jar"
|
||||||
|
|
||||||
|
# 进入bin目录
|
||||||
|
cd `dirname $0`
|
||||||
|
# bin目录绝对路径
|
||||||
|
BIN_DIR=`pwd`
|
||||||
|
# 返回到上一级项目根目录路径
|
||||||
|
cd ..
|
||||||
|
# 打印项目根目录绝对路径
|
||||||
|
# `pwd` 执行系统命令并获得结果
|
||||||
|
DEPLOY_DIR=`pwd`
|
||||||
|
|
||||||
|
# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
|
||||||
|
# 如果指定的是目录,spring则会读取目录中的所有配置文件
|
||||||
|
CONF_DIR=$DEPLOY_DIR/config
|
||||||
|
# SERVER_PORT=`sed '/server.port/!d;s/.*=//' config/application.properties | tr -d '\r'`
|
||||||
|
# 获取应用的端口号
|
||||||
|
SERVER_PORT=`sed -nr '/port: [0-9]+/ s/.*port: +([0-9]+).*/\1/p' config/application.yml`
|
||||||
|
|
||||||
|
PIDS=`ps -f | grep java | grep "$CONF_DIR" |awk '{print $2}'`
|
||||||
|
if [ "$1" = "status" ]; then
|
||||||
|
if [ -n "$PIDS" ]; then
|
||||||
|
echo "The $SERVER_NAME is running...!"
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
echo "The $SERVER_NAME is stopped"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$PIDS" ]; then
|
||||||
|
echo "ERROR: The $SERVER_NAME already started!"
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$SERVER_PORT" ]; then
|
||||||
|
SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`
|
||||||
|
if [ $SERVER_PORT_COUNT -gt 0 ]; then
|
||||||
|
echo "ERROR: The $SERVER_NAME port $SERVER_PORT already used!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 项目日志输出绝对路径
|
||||||
|
LOGS_DIR=$DEPLOY_DIR/logs
|
||||||
|
# 如果logs文件夹不存在,则创建文件夹
|
||||||
|
if [ ! -d $LOGS_DIR ]; then
|
||||||
|
mkdir $LOGS_DIR
|
||||||
|
fi
|
||||||
|
STDOUT_FILE=$LOGS_DIR/catalina.log
|
||||||
|
|
||||||
|
# JVM Configuration
|
||||||
|
JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true "
|
||||||
|
JAVA_DEBUG_OPTS=""
|
||||||
|
if [ "$1" = "debug" ]; then
|
||||||
|
JAVA_DEBUG_OPTS=" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n "
|
||||||
|
fi
|
||||||
|
|
||||||
|
JAVA_JMX_OPTS=""
|
||||||
|
if [ "$1" = "jmx" ]; then
|
||||||
|
JAVA_JMX_OPTS=" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false "
|
||||||
|
fi
|
||||||
|
|
||||||
|
JAVA_MEM_OPTS=""
|
||||||
|
BITS=`java -version 2>&1 | grep -i 64-bit`
|
||||||
|
if [ -n "$BITS" ]; then
|
||||||
|
JAVA_MEM_OPTS=" -server -Xmx512m -Xms512m -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
|
||||||
|
else
|
||||||
|
JAVA_MEM_OPTS=" -server -Xms512m -Xmx512m -XX:PermSize=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 加载外部log4j2文件的配置
|
||||||
|
LOG_IMPL_FILE=log4j2.xml
|
||||||
|
LOGGING_CONFIG=""
|
||||||
|
if [ -f "$CONF_DIR/$LOG_IMPL_FILE" ]
|
||||||
|
then
|
||||||
|
LOGGING_CONFIG="-Dlogging.config=$CONF_DIR/$LOG_IMPL_FILE"
|
||||||
|
fi
|
||||||
|
CONFIG_FILES=" -Dlogging.path=$LOGS_DIR $LOGGING_CONFIG -Dspring.config.location=$CONF_DIR/ "
|
||||||
|
echo -e "Starting the $SERVER_NAME ..."
|
||||||
|
nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS $CONFIG_FILES -jar $DEPLOY_DIR/lib/$JAR_NAME > $STDOUT_FILE 2>&1 &
|
||||||
|
|
||||||
|
COUNT=0
|
||||||
|
while [ $COUNT -lt 1 ]; do
|
||||||
|
echo -e ".\c"
|
||||||
|
sleep 1
|
||||||
|
if [ -n "$SERVER_PORT" ]; then
|
||||||
|
COUNT=`netstat -an | grep $SERVER_PORT | wc -l`
|
||||||
|
else
|
||||||
|
COUNT=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}' | wc -l`
|
||||||
|
fi
|
||||||
|
if [ $COUNT -gt 0 ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
echo "OK!"
|
||||||
|
PIDS=`ps -f | grep java | grep "$DEPLOY_DIR" | awk '{print $2}'`
|
||||||
|
echo "PID: $PIDS"
|
||||||
|
echo "STDOUT: $STDOUT_FILE"
|
||||||
@@ -94,6 +94,7 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
<finalName>hertz-beat-collector</finalName>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>com.alipay.sofa</groupId>
|
<groupId>com.alipay.sofa</groupId>
|
||||||
@@ -118,6 +119,27 @@
|
|||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
|
<version>3.3.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<id>make-zip</id>
|
||||||
|
<!--绑定的maven操作-->
|
||||||
|
<phase>package</phase>
|
||||||
|
<!--运行一次-->
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
<configuration>
|
||||||
|
<descriptors>
|
||||||
|
<descriptor>../assembly/collector/assembly.xml</descriptor>
|
||||||
|
</descriptors>
|
||||||
|
</configuration>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user