|
|
@@ -1,80 +0,0 @@
|
|
|
-#!/bin/bash
|
|
|
-if [ -z "${BASE_DIR}" ]; then
|
|
|
- BASE_DIR=$(
|
|
|
- cd "$(dirname "$(realpath "$0")")/.." || exit
|
|
|
- pwd
|
|
|
- )
|
|
|
-fi
|
|
|
-. "${BASE_DIR}"/conf/env.sh
|
|
|
-. "${BASE_DIR}"/bin/common/functions.sh
|
|
|
-BANNED_USER="root"
|
|
|
-USER="$(whoami)"
|
|
|
-CURRENT_HOST=$(hostname -s)
|
|
|
-PROJECT_NAME=$(basename "${BASE_DIR}")
|
|
|
-
|
|
|
-# 从 conf/workers.ini 加载 RELEASE_HOST + DATAX_WORKERS + 权重 + 加权随机池
|
|
|
-declare -A DATAX_WORKERS_WEIGHTS
|
|
|
-DATAX_WORKERS=()
|
|
|
-_section=""
|
|
|
-while IFS= read -r _line; do
|
|
|
- _line="${_line%%[;#]*}"
|
|
|
- _line="$(echo -n "${_line}" | xargs)"
|
|
|
- [[ -z "${_line}" ]] && continue
|
|
|
- if [[ "${_line}" =~ ^\[(.+)\]$ ]]; then
|
|
|
- _section="${BASH_REMATCH[1]}"
|
|
|
- continue
|
|
|
- fi
|
|
|
- case "${_section}" in
|
|
|
- release)
|
|
|
- if [[ "${_line}" =~ ^host[[:space:]]*=[[:space:]]*(.+)$ ]]; then
|
|
|
- RELEASE_HOST="${BASH_REMATCH[1]}"
|
|
|
- fi
|
|
|
- ;;
|
|
|
- weights)
|
|
|
- if [[ "${_line}" =~ ^([^[:space:]=]+)[[:space:]]*=[[:space:]]*([0-9]+)$ ]]; then
|
|
|
- DATAX_WORKERS+=("${BASH_REMATCH[1]}")
|
|
|
- DATAX_WORKERS_WEIGHTS["${BASH_REMATCH[1]}"]="${BASH_REMATCH[2]}"
|
|
|
- fi
|
|
|
- ;;
|
|
|
- esac
|
|
|
-done < "${BASE_DIR}/conf/workers.ini"
|
|
|
-
|
|
|
-DATAX_WORKERS_QUEUE=()
|
|
|
-for _key in "${!DATAX_WORKERS_WEIGHTS[@]}"; do
|
|
|
- for ((_i = 0; _i < DATAX_WORKERS_WEIGHTS[$_key]; _i++)); do
|
|
|
- DATAX_WORKERS_QUEUE+=("${_key}")
|
|
|
- done
|
|
|
-done
|
|
|
-unset _section _line _key _i
|
|
|
-if [ "${USER}" == "${BANNED_USER}" ]; then
|
|
|
- pretty_print "${NORM_RED}Project ${NORM_GRN}${PROJECT_NAME}${NORM_RED} is running by banned user ${NORM_GRN}${BANNED_USER}${NORM_RED}, exit with error code ${NORM_GRN}18"
|
|
|
- exit 18
|
|
|
-elif [ "${USER}" == "${RELEASE_USER}" ]; then
|
|
|
- IS_RUN_BY_RELEASE_USER="1"
|
|
|
- pretty_print "${NORM_MGT}Project ${NORM_GRN}${PROJECT_NAME}${NORM_MGT} is running by release user ${NORM_GRN}${RELEASE_USER}"
|
|
|
-else
|
|
|
- IS_RUN_BY_NORMAL_USER="1"
|
|
|
- . "${BASE_DIR}"/bin/common/print-constants.sh
|
|
|
- if [ "${CURRENT_HOST}" == "${RELEASE_HOST}" ] && [ -n "${IS_RUN_BY_NORMAL_USER}" ]; then
|
|
|
- cow_says
|
|
|
- fi
|
|
|
- pretty_print "${NORM_MGT}Project ${NORM_GRN}${PROJECT_NAME}${NORM_MGT} is running by normal user ${NORM_GRN}${USER}"
|
|
|
-fi
|
|
|
-if [[ "${BASE_DIR}" =~ "${RELEASE_ROOT_DIR}/${PROJECT_NAME}/"* ]]; then
|
|
|
- IS_RUN_IN_RELEASE_DIR="1"
|
|
|
- pretty_print "${NORM_MGT}Project ${NORM_GRN}${PROJECT_NAME}${NORM_MGT} is running in release dir ${NORM_GRN}${RELEASE_ROOT_DIR}/${PROJECT_NAME}"
|
|
|
-else
|
|
|
- pretty_print "${NORM_MGT}Project ${NORM_GRN}${PROJECT_NAME}${NORM_MGT} is running in normal user dir ${NORM_GRN}${BASE_DIR}"
|
|
|
-fi
|
|
|
-
|
|
|
-export CURRENT_HOST
|
|
|
-export DATAX_WORKERS
|
|
|
-export BA_LITTLE_CUTE
|
|
|
-export DCP_LITTLE_CUTE
|
|
|
-export ETL_LITTLE_CUTE
|
|
|
-export SKB_LITTLE_CUTE
|
|
|
-export REALTIME_LITTLE_CUTE
|
|
|
-export IS_RUN_IN_RELEASE_DIR
|
|
|
-export IS_RUN_BY_RELEASE_USER
|
|
|
-echo -en "${NORM_GRN}"
|
|
|
-echo -en "${DO_RESET}"
|