You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
3.4 KiB
Bash

#!/bin/bash
#################### init system env ################################################
### 检测操作系统位数,如果非64位操作系统,则退出
SYSBIT=`getconf LONG_BIT`
if [ X"${SYSBIT}" != X"64" ]; then
echo "当前系统非x64,不能执行安装!"
exit 1
fi
ARM=`arch`
JAVA_PATH=$(which java)
if [ -z $JAVA_PATH ]; then
echo "Java未安装"
exit 1
fi
#################### 安装CAC Mqtt ################################################
installMqtt(){
echo "************[installing CAC Mqtt]正在安装CAC Mqtt >>>>>>>>>>>>>"
rm -rf ${ANA_DIR}/*
cp package/mqtt-1.0.0.jar ${ANA_DIR}/
echo ${ANA_DIR}" installed."
unzip -qj package/mqtt-1.0.0.jar BOOT-INF/classes/application-prod.yml -d ${ANA_DIR}/config
sleep 1
sed -i 's/cac/'${DB_INS}'/' ${ANA_DIR}/config/application-prod.yml
sed -i 's/localhost:3306/'${DB_IP}':'${DB_PORT}'/' ${ANA_DIR}/config/application-prod.yml
sed -i 's/username: root/username: '${DB_USER}'/' ${ANA_DIR}/config/application-prod.yml
sed -i 's/password: root/password: '${DB_PASS}'/' ${ANA_DIR}/config/application-prod.yml
sed -i 's#/home/xydl/mqtt/logs/mqtt.log#'${BIN_DIR}'/logs/mqtt.log#' ${ANA_DIR}/config/application-prod.yml
echo 'if [ -n "$(ps -ef | grep mqtt-1.0.0 | grep -v grep | awk '"'"'{print $2}'"'"')" ]; then' > ${BIN_DIR}/startMqtt.sh
echo ' echo "mqtt-1.0.0 is running"' >> ${BIN_DIR}/startMqtt.sh
echo 'else' >> ${BIN_DIR}/startMqtt.sh
echo " cd "${ANA_DIR} >> ${BIN_DIR}/startMqtt.sh
echo ' echo "Starting mqtt-1.0.0"' >> ${BIN_DIR}/startMqtt.sh
echo " nohup ${JAVA_PATH} -jar mqtt-1.0.0.jar --spring.profiles.active=prod >/dev/null 2>&1 &" >> ${BIN_DIR}/startMqtt.sh
echo " rm -f ${ANA_DIR}/RUNNING.lock" >> ${BIN_DIR}/startMqtt.sh
echo 'fi' >> ${BIN_DIR}/startMqtt.sh
echo 'if [ -n "$(ps -ef | grep mqtt-1.0.0 | grep -v grep | awk '"'"'{print $2}'"'"')" ]; then' > ${BIN_DIR}/stopMqtt.sh
echo " rm -f ${ANA_DIR}/RUNNING.lock" >> ${BIN_DIR}/stopMqtt.sh
echo ' kill $(ps -ef | grep mqtt-1.0.0 | grep -v grep | awk '"'"'{print $2}'"'"')' >> ${BIN_DIR}/stopMqtt.sh
echo ' echo "Stopping mqtt-1.0.0"' >> ${BIN_DIR}/stopMqtt.sh
echo 'else' >> ${BIN_DIR}/stopMqtt.sh
echo ' echo "mqtt-1.0.0 is not running"' >> ${BIN_DIR}/stopMqtt.sh
echo 'fi' >> ${BIN_DIR}/stopMqtt.sh
chmod +x ${BIN_DIR}/startMqtt.sh
chmod +x ${BIN_DIR}/stopMqtt.sh
echo ""
sleep 1
}
#################### 加入开机启动 ################################################
setAutoStartMqtt(){
if [ `grep -c ${BIN_DIR}/startMqtt.sh /etc/rc.d/rc.local` -eq '0' ]; then
echo '#CAC Mqtt' >> /etc/rc.d/rc.local
echo ${BIN_DIR}/startMqtt.sh >> /etc/rc.d/rc.local
fi
echo "CAC Mqtt已加入开机启动."
echo ""
job="* * * * * ${BIN_DIR}/checkMqtt.sh > /dev/null 2>&1 "
( crontab -l | grep -v "$job"; echo "$job" ) | crontab -
echo "checkMqtt已加入crontab."
echo ""
}
sed -i 's/\r//g' setup.ini
source setup.ini
BASE_DIR=${BASE_DIR%*/}
BIN_DIR=${BASE_DIR}/mqtt
ANA_DIR=${BASE_DIR}/mqtt
### 创建默认的目录
mkdir -p ${BIN_DIR}
installMqtt
setAutoStartMqtt
cp -f package/checkMqtt.sh ${ANA_DIR}
sed -i 's/\r//g' ${ANA_DIR}/checkMqtt.sh
sed -i 's#BASE_DIR#'${ANA_DIR}'#g' ${ANA_DIR}/checkMqtt.sh
chmod +x ${ANA_DIR}/checkMqtt.sh
echo "************[install finished.]安装完成. >>>>>>>>>>>>>"
sleep 1