#!/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