#!/bin/bash #Shell 环境 SHELL_NAME=deploy BASEDIR=$(dirname $0) BASEDIR=$( ( cd "$BASEDIR" pwd )) SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log" OPT_PATH="/home/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" MYSQL_SERVICE="${SERVICE_PATH}/mysql.service" #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="taxi_mq" RABBITMQ_PASSWORD="admin@2020" 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="hotel@2020" 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="portal-manager" 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="base-manager" 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 -y purge openjdk* #apt-get -y purge icedtea-* openjdk-* fi rm -rf ${JAVA_HOME} mkdir -p ${JAVA_HOME} cpu_info=$(check_cpu) echo "${cpu_info}" 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 echo "export JAVA_HOME=${JAVA_HOME}" >>/etc/profile echo "export JRE_HOME=$JAVA_HOME/jre" >>/etc/profile echo "export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib" >>/etc/profile echo "export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin" >>/etc/profile 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} writelog "redis make start" 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 system_version=$(unix_is_centos) if [[ ${system_version} == "centos" ]]; then writelog "centos" yum -y install libncurses* # yum -y remove java-*-openjdk* #卸载centos中的openjdk #yum -y remove tzdata-java.noarch else writelog "ubuntu" apt -y install libncurses* #apt-get purge openjdk* #apt-get purge icedtea-* openjdk-* fi writelog "exccmd tar -zvxf ${BASEDIR}/soft/${MYSQL}/${MYSQL_CENTOS_FILENAME} -C ${MYSQL_EXECPATH} --strip-components 1" 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-files echo " [mysqld] datadir=${MYSQL_DATA_PATH} socket=/tmp/mysql.sock 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 [client] default-character-set=utf8 socket=/tmp/mysql.sock [mysql] default-character-set=utf8 socket=/tmp/mysql.sock " >${MYSQL_CONF_PATH} #初始化 writelog "mysql init cmd: bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock" bin/mysqld --initialize --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock #bin/mysqld --initialize-insecure --user=mysql --datadir=${MYSQL_DATA_PATH} --basedir=${MYSQL_EXECPATH} --socket=/tmp/mysql.sock #创建软连接 rm -f /etc/init.d/mysql rm -f /usr/bin/mysql 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 writelog $MYSQL_SERVICE echo " [Unit] Description=MySQL Server After=network.target After=syslog.target [Service] User=mysql Group=mysql Type=forking PermissionsStartOnly=true ExecStart= /etc/init.d/mysql start ExecStop= /etc/init.d/mysql stop ExecReload= /etc/init.d/mysql restart LimitNOFILE = 5000 [Install] WantedBy=multi-user.target " >${MYSQL_SERVICE} systemctl enable mysql systemctl daemon-reload systemctl restart mysql mysql -uroot -p123 <${BASEDIR}/soft/${MYSQL}/user.sql sed -i "s/skip-grant-tables/#skip-grant-tables/g" ${MYSQL_CONF_PATH} systemctl restart mysql } 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 rabbitmq-plugins enable rabbitmq_web_stomp rabbitmq_web_stomp_examples 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" apt-get remove rabbitmq-server -y rm -rf /var/lib/rabbitmq rm -rf /usr/lib64/erlang apt-get remove erlang -y 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 writelog "nginx depend install" yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ else writelog "ubuntu nginx clear" apt-get purge nginx* apt-get -y install build-essential openssl libssl-dev libpcre3 libpcre3-dev zlib1g zlib1g-dev fi rm -rf ${NGINX_EXECPATH} mkdir -p ${NGINX_EXECPATH} mkdir -p ${NGINX_CONF_PATH} writelog "解压nginx:tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1" tar -zvxf ${BASEDIR}/soft/${NGINX}/${NGINX_FILENAME} -C ${NGINX_EXECPATH} --strip-components 1 cd ${NGINX_EXECPATH} #./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF} --with-pcre=/home/pcre-8.45 ./configure --prefix=${NGINX_EXECPATH} --conf-path=${NGINX_CONF} --with-http_stub_status_module --with-http_ssl_module writelog "nginx make start" 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} rm -f /usr/sbin/nginx ln -s ${NGINX_EXECPATH}/sbin/nginx /usr/sbin/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 writelog "init_deploy finish" } 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 is ${project_status}" } nacos_deploy() { writelog "${NACOS}_deploy..." rm -rf ${NACOS_SERVICE} rm -rf ${NACOS_EXECPATH} mkdir -p ${NACOS_EXECPATH} writelog "tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1" tar -zvxf $BASEDIR/release/nacos/${NACOS_FILENAME} -C ${NACOS_EXECPATH} --strip-components 1 writelog "${NACOS}_deploy init db..." writelog " mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql" mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} <${NACOS_EXECPATH}/db/nacos.sql echo "" >$NACOS_SERVICE echo "[Unit]" >>$NACOS_SERVICE echo "Description=nacos" >>$NACOS_SERVICE echo "After=network.target" >>$NACOS_SERVICE echo "" >>$NACOS_SERVICE,mq 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创建完成!" 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 is ${jcpid},status is ${project_status}" } 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} build_service ${SMART_GATEWAY} ${SMART_GATEWAY_SERVICE} ${SMART_GATEWAY_EXECPATH} 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 build_service ${SMART_PORTAL_PLATFORM} ${SMART_PORTAL_PLATFORM_SERVICE} ${SMART_PORTAL_PLATFORM_EXECPATH} 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_base_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 build_service ${SMART_BASE_PLATFORM} ${SMART_BASE_PLATFORM_SERVICE} ${SMART_BASE_PLATFORM_EXECPATH} 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 build_service ${DEVICE_PLATFORM} ${DEVICE_PLATFORM_SERVICE} ${DEVICE_PLATFORM_EXECPATH} 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 build_service ${LOG_PLATFORM} ${LOG_PLATFORM_SERVICE} ${LOG_PLATFORM_EXECPATH} start_service_and_nginx ${LOG_PLATFORM} } stopApps() { echo "停止服务开始!" echo "nacos stop..." systemctl stop ${NACOS} echo "nacos stop finish..." echo "smart-gateway stop..." systemctl stop ${SMART_GATEWAY} echo "smart-gateway stop finish..." echo "smart-portal-platform stop..." systemctl stop ${SMART_PORTAL_PLATFORM} echo "smart-portal-platform stop finish..." echo "smart-base-platform stop..." systemctl stop ${SMART_BASE_PLATFORM} echo "smart-base-platform stop finish..." echo "device-platform stop..." systemctl stop ${DEVICE_PLATFORM} echo "device-platform stop finish..." echo "log-platform stop..." systemctl stop ${LOG_PLATFORM} echo "log-platform stop 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 <