#!/bin/bash if [ -z "${BASE_DIR}" ]; then BASE_DIR=$( cd "$(dirname "$(realpath "$0")")/.." || exit pwd ) fi . "${BASE_DIR}"/bin/common/functions.sh BANNED_USER="root" RELEASE_USER="alvis" USER="$(whoami)" CURRENT_HOST=$(hostname -s) RELEASE_HOST="m3" RELEASE_ROOT_DIR="/home/alvis/release" PROJECT_NAME=$(basename "${BASE_DIR}") PYTHON3_PATH="/usr/bin/python3" DATAX_HOME="${DATAX_HOME:-/opt/datax}" DATAX_WORKERS=( m3 d1 d2 d3 d4 ) declare -A DATAX_WORKERS_WEIGHTS=( ["m3"]=1 ["d1"]=2 ["d2"]=2 ["d3"]=3 ["d4"]=3 ) DATAX_WORKERS_QUEUE=() # 定义一个map存储机器的ip地址和分配的权重 for key in ${!DATAX_WORKERS_WEIGHTS[*]}; do for ((i = 0; i < ${DATAX_WORKERS_WEIGHTS[$key]}; i++)); do DATAX_WORKERS_QUEUE+=("$key") done done if [ "${USER}" == "${RELEASE_USER}" ]; then LOG_ROOT_DIR="/opt/data/log" 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}" elif [ "${USER}" == "${BANNED_USER}" ]; then LOG_ROOT_DIR="/opt/data/log" 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 else LOG_ROOT_DIR="/opt/data/log/users/${USER}" 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_HOME export DATAX_WORKERS export BA_LITTLE_CUTE export DCP_LITTLE_CUTE export ETL_LITTLE_CUTE export SKB_LITTLE_CUTE export REALTIME_LITTLE_CUTE export LOG_ROOT_DIR export PYTHON3_PATH export RELEASE_ROOT_DIR export IS_RUN_IN_RELEASE_DIR export IS_RUN_BY_RELEASE_USER echo -en "${NORM_GRN}" echo -en "${DO_RESET}"