#!/bin/bash #Shell 环境 SHELL_NAME=$0 BASEDIR=$(dirname $0) BASEDIR=$( ( cd "$BASEDIR" pwd )) SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log" OPT_PATH="/usr/local" PUBLISH_PATH="/home/publish" LOCK_FILE="/tmp/deploy.lock" SERVICE_PATH="/usr/lib/systemd/system" ARM_64="aarch64" X86_64="x86_64" PRO_NAME="smart-gov" #项目名称 # 时间变量 LOG_DATE='date "+%Y-%m-%d"' LOG_TIME='date "+%H-%M-%S"' #java JAVA_FILENAME="jdk1.8.tar.gz" JAVA_ARM_FILENAME="jdk-8u341-linux-aarch64.tar.gz" JAVA_HOME="${OPT_PATH}/java/jdk1.8" # nginx NGINX="nginx" NGINX_FILENAME="nginx-1.22.0.tar.gz" NGINX_SERVICE="${SERVICE_PATH}/${NGINX}.service" NGINX_EXECPATH="${OPT_PATH}/${NGINX}" NGINX_CONF="/etc/nginx/nginx.conf" NGINX_CONF_PATH="/etc/nginx/conf.d/" # mysql变量 MYSQL="mysql" MYSQL_CENTOS_FILENAME="mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz" MYSQL_EXECPATH="${OPT_PATH}/${MYSQL}" MYSQL_CONF_PATH="/etc/my.cnf" MYSQL_DATA_PATH="${MYSQL_EXECPATH}/data" MYSQL_HOST="127.0.0.1" MYSQL_PORT="3306" MYSQL_USER="root" MYSQL_PASSWORD="xhx@2022" #rabbitmq RABBITMQ="rabbitmq" RABBIT_CENTOS_FILENAME="rabbitmq-server-3.9.16-1.el7.noarch.rpm" ELANG_CENTOS_FILENAME="erlang-23.3.4.11-1.el7.x86_64.rpm" RABBITMQ_USER="root" RABBITMQ_PASSWORD="xhx@2022" RABBITMQ_CONF_PATH="/etc/rabbitmq/" #redis REDIS="redis" REDIS_FILENAME="redis-stable.tar.gz" REDIS_SERVICE="${SERVICE_PATH}/${REDIS}.service" REDIS_EXECPATH="${OPT_PATH}/${REDIS}" REDIS_HOST="127.0.0.1" REDIS_PORT="6379" REDIS_PASSWORD="12345678" CDATE=$(date "+%Y-%m-%d") CTIME=$(date "+%H-%M-%S") NACOS="nacos" NACOS_FILENAME="nacos-server-2.1.1.tar.gz" NACOS_SERVICE="${SERVICE_PATH}/${NACOS}.service" NACOS_EXECPATH="${OPT_PATH}/${NACOS}" # 网关工程变量 SMART_GATEWAY="smart-gateway" SMART_GATEWAY_FILENAME="${SMART_GATEWAY}.tar.gz" SMART_GATEWAY_SERVICE="${SERVICE_PATH}/smart-gateway.service" SMART_GATEWAY_EXECPATH="${PUBLISH_PATH}/smart-gateway" # 门户工程变量 SMART_PORTAL_PLATFORM="smart-portal-platform" SMART_PORTAL_PLATFORM_FILENAME="${SMART_PORTAL_PLATFORM}.tar.gz" SMART_PORTAL_PLATFORM_UI_FILENAME="${SMART_PORTAL_PLATFORM}-ui.tar.gz" SMART_PORTAL_PLATFORM_SERVICE="${SERVICE_PATH}/${SMART_PORTAL_PLATFORM}.service" SMART_PORTAL_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}" SMART_PORTAL_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${SMART_PORTAL_PLATFORM}-ui" # 基础工程变量 SMART_BASE_PLATFORM="smart-base-platform" SMART_BASE_PLATFORM_FILENAME="${SMART_BASE_PLATFORM}.tar.gz" SMART_BASE_PLATFORM_UI_FILENAME="${SMART_BASE_PLATFORM}-ui.tar.gz" SMART_BASE_PLATFORM_SERVICE="${SERVICE_PATH}/${SMART_BASE_PLATFORM}.service" SMART_BASE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}" SMART_BASE_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${SMART_BASE_PLATFORM}-ui" # 设备工程变量 DEVICE_PLATFORM="device-manager" DEVICE_PLATFORM_FILENAME="${DEVICE_PLATFORM}.tar.gz" DEVICE_PLATFORM_UI_FILENAME="${DEVICE_PLATFORM}-ui.tar.gz" DEVICE_PLATFORM_SERVICE="${SERVICE_PATH}/${DEVICE_PLATFORM}.service" DEVICE_PLATFORM_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}" DEVICE_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${DEVICE_PLATFORM}-ui" # 日志工程变量 LOG_PLATFORM="log-manager" LOG_PLATFORM_FILENAME="${LOG_PLATFORM}.tar.gz" LOG_PLATFORM_UI_FILENAME="${LOG_PLATFORM}-ui.tar.gz" LOG_PLATFORM_SERVICE="${SERVICE_PATH}/${LOG_PLATFORM}.service" LOG_PLATFORM_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}" LOG_PLATFORM_UI_EXECPATH="${PUBLISH_PATH}/${LOG_PLATFORM}-ui" #加锁 shell_lock() { touch ${LOCK_FILE} } #删除锁 shell_unlock() { rm -f ${LOCK_FILE} } #写日志 writelog() { LOGINFO=$1 echo "${CDATE} ${CTIME}: ${SHELL_NAME} : ${LOGINFO}" >>${SHELL_LOG} echo ${LOGINFO} } unix_is_centos() { if [ ! -f "/etc/redhat-release" ]; then writelog "centos" else writelog "ubuntu" fi } check_cpu() { cpu_info=$(arch) writelog ${cpu_info} } usage() { echo $"Usage: $0 [ deploy | rollback ]" } setup_java() { writelog "setup java" system_version=$(unix_is_centos) if [[ ${system_version} == "centos" ]]; then writelog "centos java clear" yum -y remove java-*-openjdk* #卸载centos中的openjdk yum -y remove tzdata-java.noarch else writelog "ubuntu java clear" apt-get purge openjdk* apt-get purge icedtea-* openjdk-* fi rm -rf ${JAVA_HOME} mkdir -p ${JAVA_HOME} cpu_info=$(check_cpu) if [[ ${cpu_info} == *${ARM_64}* ]]; then tar -zvxf ${BASEDIR}/soft/java/arm_64/${JAVA_ARM_FILENAME} -C ${JAVA_HOME} --strip-components 1 echo "arm64" elif [[ ${cpu_info} == *${X86_64}* ]]; then tar -zvxf ${BASEDIR}/soft/java/x86_64/${JAVA_FILENAME} -C ${JAVA_HOME} --strip-components 1 echo "x86_64" else tar -zvxf ${BASEDIR}/soft/java/x86_64/${JAVA_FILENAME} -C ${JAVA_HOME} --strip-components 1 echo "x86_64" fi export JAVA_HOME=${JAVA_HOME} export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin source /etc/profile #使配置立即生效 #检查Java安装和配置 cd $BASEDIR writelog "setup java finish!" } setup_redis() { writelog "setup redis start" rm -rf ${REDIS_EXECPATH} mkdir -p ${REDIS_EXECPATH} tar -zvxf ${BASEDIR}/soft/${REDIS}/${REDIS_FILENAME} -C ${REDIS_EXECPATH} --strip-components 1 cd ${REDIS_EXECPATH} make make PREFIX=${REDIS_EXECPATH} install sed -i "s/daemonize no/daemonize yes/g" ${REDIS_EXECPATH}/redis.conf sed -i "s/protected-mode yes/protected-mode no/g" ${REDIS_EXECPATH}/redis.conf sed -i "s/bind 127.0.0.1 -::1/#bind 127.0.0.1 -::1/g" ${REDIS_EXECPATH}/redis.conf echo "notify-keyspace-events Ex" >>${REDIS_EXECPATH}/redis.conf echo "requirepass ${REDIS_PASSWORD}" >>${REDIS_EXECPATH}/redis.conf echo "[Unit] Description=${REDIS} After=network.target [Service] Type=forking ExecStart=${REDIS_EXECPATH}/bin/redis-server ${REDIS_EXECPATH}/redis.conf ExecReload=${REDIS_EXECPATH}/bin/redis-server -s reload ExecStop=${REDIS_EXECPATH}/bin/redis-server -s stop PrivateTmp=true [Install] WantedBy=multi-user.target " >${REDIS_SERVICE} systemctl enable redis systemctl daemon-reload systemctl start redis writelog "setup redis finish" } setup_mysql() { writelog "setup mysql" service mysql stop rm -rf ${MYSQL_DATA_PATH} rm -rf ${MYSQL_EXECPATH} mkdir -p ${MYSQL_EXECPATH} mkdir -p ${MYSQL_DATA_PATH} mkdir -p ${MYSQL_EXECPATH}/mysql-files groupadd mysql useradd -r -g mysql mysql tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1 cd ${MYSQL_EXECPATH} chown mysql:mysql mysql-files chmod 750 mysql-file echo "[mysqld] datadir=${MYSQL_DATA_PATH} port = ${MYSQL_PORT} sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 max_connections=400 innodb_file_per_table=1 #表名存储在磁盘是小写的,但是比较的时候是不区分大小写 lower_case_table_names=1 #忽略密码 skip-grant-tables " >${MYSQL_CONF_PATH} #初始化 bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} #创建软连接 ln -s ${MYSQL_EXECPATH}/support-files/mysql.server /etc/init.d/mysql ln -s ${MYSQL_EXECPATH}/bin/mysql /usr/bin/mysql export PATH=$PATH:${MYSQL_EXECPATH}/bin source /etc/profile service mysql restart mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH} service mysql restart } setup_rabbitmq() { writelog "setup rabbitmq" mkdir -p ${RABBITMQ_CONF_PATH} system_version=$(unix_is_centos) if [[ ${system_version} == "centos" ]]; then writelog "centos erlang and rabbitmq clear" yum -y remove rabbitmq-server.noarch yum -y remove erlang-* yum remove erlang.x86_64 rm -rf /usr/lib64/erlang rm -rf /var/lib/rabbitmq rpm -Uvh ${BASEDIR}/soft/${RABBITMQ}/${ELANG_CENTOS_FILENAME} yum install -y erlang rpm -Uvh ${BASEDIR}/soft/${RABBITMQ}/${RABBIT_CENTOS_FILENAME} yum install -y rabbitmq-server cp -a ${BASEDIR}/release/conf/${RABBITMQ}.conf ${RABBITMQ_CONF_PATH} systemctl enable rabbitmq-server systemctl daemon-reload systemctl start rabbitmq-server rabbitmq-plugins enable rabbitmq_management rabbitmqctl add_user ${RABBITMQ_USER} ${RABBITMQ_PASSWORD} # 添加用户 rabbitmqctl set_user_tags ${RABBITMQ_USER} administrator # 设置用户角色,分配操作权限 rabbitmqctl set_permissions -p / ${RABBITMQ_USER} ".*" ".*" ".*" # 为用户添加资源权限(授予访问虚拟机根节点的所有权限) else writelog "ubuntu erlang and rabbitmq clear" fi } setup_nginx() { writelog "setup nginx" writelog "stop and remove nginx" systemctl stop nginx system_version=$(unix_is_centos) if [[ ${system_version} == "centos" ]]; then writelog "centos nginx clear" yum remove nginx else writelog "ubuntu nginx clear" apt-get purge nginx* fi rm -rf ${NGINX_EXECPATH} mkdir -p ${NGINX_EXECPATH} tar -zvx ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1 cd ${NGINX_EXECPATH} ./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF} make make install cp -a ${BASEDIR}/release/conf/${NGINX}.conf ${NGINX_CONF} echo "[Unit] Description=${NGINX} After=network.target [Service] Type=forking ExecStart=${NGINX_EXECPATH}/sbin/nginx ExecReload=${NGINX_EXECPATH}/sbin/nginx -s reload ExecStop=${NGINX_EXECPATH}/sbin/nginx -s stop PrivateTmp=true [Install] WantedBy=multi-user.target " >${NGINX_SERVICE} systemctl enable ${NGINX} systemctl daemon-reload systemctl start ${NGINX} writelog "setup nginx finish" } clear_deploy() { PROJECT_NAME=$1 SERVICE=$2 EXECPATH=$3 rm -rf ${SERVICE} rm -rf ${EXECPATH} rm -f ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf mkdir -p ${EXECPATH} } clear_ui_deploy() { EXEC_UI_PATH=$1 rm -rf ${EXEC_UI_PATH} mkdir -p ${EXEC_UI_PATH} } init_setup() { writelog "init_setup" system_version=$(unix_is_centos) if [[ ${system_version} == "centos" ]]; then writelog "centos install and update" yum update -y yum install -y gcc yum install -y socat else writelog "ubuntu install and update" apt update apt --fix-broken install apt install -y gcc apt install -y socat fi } init_deploy() { writelog "init_deploy" mkdir -p ${PUBLISH_PATH} chmod -R 755 $PUBLISH_PATH mkdir -p /mortals/app/data mkdir -p /mortals/app/logs chmod -R 755 /mortals } build_service() { PROJECT_NAME=$1 SERVICE=$2 EXECPATH=$3 echo "" >${SERVICE} echo "[Unit]" >>${SERVICE} echo "Description=${PROJECT_NAME}" >>${SERVICE} echo "After=network.target" >>${SERVICE} echo "" >>${SERVICE} echo "[Service]" >>${SERVICE} echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>${SERVICE} echo "Type=forking" >>${SERVICE} echo "ExecStart=${EXECPATH}/bin/start.sh" >>${SERVICE} echo "ExecStop=${EXECPATH}/bin/shutdown.sh" >>${SERVICE} echo "PrivateTmp=true" >>${SERVICE} echo "" >>${SERVICE} echo "[Install]" >>${SERVICE} echo "WantedBy=multi-user.target" >>${SERVICE} writelog "${PROJECT_NAME}服务创建完成!" } start_service_and_nginx() { PROJECT_NAME=$1 systemctl enable ${PROJECT_NAME} systemctl daemon-reload systemctl stop ${PROJECT_NAME} && systemctl start ${PROJECT_NAME} project_status=$(systemctl status "${PROJECT_NAME}" | grep Active | awk '{print $2}') cp -a ${BASEDIR}/release/conf/${PROJECT_NAME}.conf ${NGINX_CONF_PATH}/${PROJECT_NAME}.conf nginx -t nginx -s reload jcpid=$(ps -ef | grep -v "grep" | grep "${PROJECT_NAME} " | awk '{print $2}') writelog "${PROJECT_NAME}服务启动,PID is ${jcpid} ,status:${project_status}" } nacos_deploy() { writelog "${NACOS}_deploy" rm -rf ${NACOS_SERVICE} rm -rf ${NACOS_EXECPATH} mkdir -p ${NACOS_EXECPATH} tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql if [ ! -f "$NACOS_SERVICE" ]; then echo "" >$NACOS_SERVICE echo "[Unit]" >>$NACOS_SERVICE echo "Description=nacos" >>$NACOS_SERVICE echo "After=network.target" >>$NACOS_SERVICE echo "" >>$NACOS_SERVICE echo "[Service]" >>$NACOS_SERVICE echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>$NACOS_SERVICE echo "Type=forking" >>$NACOS_SERVICE echo "ExecStart=${NACOS_EXECPATH}/bin/startup.sh -m standalone" >>$NACOS_SERVICE echo "ExecStop=${NACOS_EXECPATH}/bin/shutdown.sh" >>$NACOS_SERVICE echo "PrivateTmp=true" >>$NACOS_SERVICE echo "" >>$NACOS_SERVICE echo "[Install]" >>$NACOS_SERVICE echo "WantedBy=multi-user.target" >>$NACOS_SERVICE writelog "NACOS_SERVICE创建完成!" else writelog "NACOS_SERVICE文件已经存在" fi writelog "NACOS_SERVICE服务启动!" systemctl enable ${NACOS} systemctl daemon-reload systemctl stop ${NACOS} && systemctl start ${NACOS} project_status=$(systemctl status "${PROJECT_NAME}" | grep Active | awk '{print $2}') jcpid=$(ps -ef | grep -v "grep" | grep "${NACOS} " | awk '{print $2}') writelog "${NACOS}服务启动!pid=${jcpid}" } smart_gateway_deploy() { writelog "${SMART_GATEWAY}_deploy" clear_deploy ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH} tar -zvxf ${BASEDIR}/release/${SMART_GATEWAY}/${SMART_GATEWAY_FILENAME} -C ${PUBLISH_PATH} if [ ! -f "${SMART_GATEWAY_SERVICE}" ]; then build_service ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH} else writelog "${SMART_GATEWAY}服务文件已经存在!" fi start_service_and_nginx ${SMART_GATEWAY} } smart_portal_platform_deploy() { writelog "${SMART_PORTAL_PLATFORM}_deploy" clear_deploy ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH} writelog "${SMART_PORTAL_PLATFORM}_clear_finish" clear_ui_deploy ${SMART_PORTAL_PLATFORM_UI_EXECPATH} writelog "${SMART_PORTAL_PLATFORM_UI_EXECPATH}_clear_finish" tar -zvxf ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_FILENAME} -C ${PUBLISH_PATH} tar -zvxf ${BASEDIR}/release/${SMART_PORTAL_PLATFORM}/${SMART_PORTAL_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH} mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/db.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_PORTAL_PLATFORM_EXECPATH}/db/menu.sql if [ ! -f "${SMART_PORTAL_PLATFORM_SERVICE}" ]; then build_service ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH} else writelog "${SMART_PORTAL_PLATFORM}服务文件已经存在!" fi start_service_and_nginx ${SMART_PORTAL_PLATFORM} } smart_base_platform_deploy() { writelog "${SMART_BASE_PLATFORM}_deploy" clear_deploy ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH} clear_ui_deploy ${SMART_BASE_PLATFORM_UI_EXECPATH} writelog "${SMART_BASE_PLATFORM_UI_EXECPATH}_clear_finish" tar -zvxf ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_FILENAME} -C ${PUBLISH_PATH} tar -zvxf ${BASEDIR}/release/${SMART_BASE_PLATFORM}/${SMART_BASE_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH} mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/base_modules.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/menu.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/params.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/init_area_data.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${SMART_BASE_PLATFORM_EXECPATH}/db/init_matter_data.sql if [ ! -f "${SMART_BASE_PLATFORM_SERVICE}" ]; then build_service ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH} else writelog "${SMART_BASE_PLATFORM}服务文件已经存在!" fi start_service_and_nginx ${SMART_BASE_PLATFORM} } device_platform_deploy() { writelog "${DEVICE_PLATFORM}_deploy" clear_deploy ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH} clear_ui_deploy ${DEVICE_PLATFORM_UI_EXECPATH} writelog "${SMA_PLATFORM_UI_EXECPATH}_clear_finish" tar -zvxf ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_FILENAME} -C ${PUBLISH_PATH} tar -zvxf ${BASEDIR}/release/${DEVICE_PLATFORM}/${DEVICE_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH} mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/base.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/module.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/menu.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/params.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${DEVICE_PLATFORM_EXECPATH}/db/init_area.sql if [ ! -f "${DEVICE_PLATFORM_SERVICE}" ]; then build_service ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH} else writelog "${DEVICE_PLATFORM}服务文件已经存在!" fi start_service_and_nginx ${DEVICE_PLATFORM} } log_platform_deploy() { writelog "${LOG_PLATFORM}_deploy" clear_deploy ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH} clear_ui_deploy ${LOG_PLATFORM_UI_EXECPATH} writelog "${LOG_PLATFORM_UI_EXECPATH}_clear_finish" tar -zvxf ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_FILENAME} -C ${PUBLISH_PATH} tar -zvxf ${BASEDIR}/release/${LOG_PLATFORM}/${LOG_PLATFORM_UI_FILENAME} -C ${PUBLISH_PATH} mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/base.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/module.sql mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${LOG_PLATFORM_EXECPATH}/db/menu.sql if [ ! -f "${LOG_PLATFORM_SERVICE}" ]; then build_service ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH} else writelog "${LOG_PLATFORM}服务文件已经存在!" fi start_service_and_nginx ${LOG_PLATFORM} } stopApps() { echo "停止服务开始!" echo "nacos stop..." systemctl stop ${NACOS} echo "nacos finish..." echo "smart-gateway stop..." systemctl stop ${SMART_GATEWAY} echo "smart-gateway finish..." echo "smart-portal-platform stop..." systemctl stop ${SMART_PORTAL_PLATFORM} echo "smart-portal-platform finish..." echo "smart-base-platform stop..." systemctl stop ${SMART_BASE_PLATFORM} echo "smart-base-platform finish..." echo "device-platform stop..." systemctl stop ${DEVICE_PLATFORM} echo "device-platform finish..." echo "log-platform stop..." systemctl stop ${LOG_PLATFORM} echo "log-platform finish..." echo "停止服务完成!" } startApps() { echo "启动服务开始!" systemctl start ${NACOS} systemctl start ${SMART_GATEWAY} systemctl start ${SMART_PORTAL_PLATFORM} systemctl start ${SMART_BASE_PLATFORM} systemctl start ${DEVICE_PLATFORM} systemctl start ${LOG_PLATFORM} echo "启动服务完成!" } rollback() { echo "功能未实现!" } back_menu() { echo "功能未实现!" } program_deploy() { writelog "system setup start" setup_java setup_mysql setup_nginx setup_redis setup_rabbitmq writelog "system setup finish" } project_deploy() { shell_lock init_deploy nacos_deploy smart_gateway_deploy smart_portal_platform_deploy smart_base_platform_deploy device_platform_deploy log_platform_deploy shell_unlock } function menu() { #显示菜单 cat <