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
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
|