403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /opt/webdir/bin/menu/11_transformer/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /opt/webdir/bin/menu/11_transformer/functions.sh
#!/usr/bin/bash
#
BASE_DIR=/opt/webdir
BIN_DIR=$BASE_DIR/bin

. $BIN_DIR/bitrix_utils.sh || exit 1

bx_process_script=$BIN_DIR/bx-process
bx_host_script=$BIN_DIR/wrapper_ansible_conf
bx_web_script=$BIN_DIR/bx-sites

submenu_dir=$BIN_DIR/menu/11_transformer
trasformer_menu=$submenu_dir
ansible_web_group=/etc/ansible/group_vars/bitrix-web.yml

site_menu_dir=$BIN_DIR/menu/06_site
site_menu_fnc=$site_menu_dir/functions.sh
. $site_menu_fnc || exit 1

# get_text variables
[[ -f $trasformer_menu/functions.txt ]] && . $trasformer_menu/functions.txt

sites_transformer_status() {
    cache_pool_sites

    IFS_BAK=$IFS
    IFS=$'\n'
    SITES_TR=
    # POOL_SITES_KERNEL_LIST - there are list of kernel sites
    # default:sitemanager:kernel:not_installed:vm04:/home/bitrix/www:utf-8:N:N:N:N:::N
    for line in $POOL_SITES_KERNEL_LIST; do
        site_name=$(echo "$line" | awk -F ':' '{print $1}')
        site_dir=$(echo "$line" | awk -F ':' '{print $6}')
        site_status=$(echo "$line" | awk -F':' '{print $4}')
        site_tr=$(echo "$line" | awk -F ':' '{print $14}')
        module_transformer=$(echo "$site_tr" | awk -F';' '{print $1}')
        module_transformercontroller=$(echo "$site_tr" | awk -F';' '{print $2}')

        if [[ $DEBUG -gt 0 ]];
        then
            echo "$site_name: $site_dir: $site_status: $module_transformer: $module_transformercontroller"
        fi

        if [[ $module_transformer == 'N' || $module_transformercontroller == 'N' || $site_status != "finished" ]];
        then
            continue
        fi

        if [[ -z $SITES_TR ]];
        then
            SITES_TR="$site_name:$site_dir:$module_transformer:$module_transformercontroller"
        else
            SITES_TR="$SITES_TR\n$site_name:$site_dir:$module_transformer:$module_transformercontroller"
        fi
    done

    IFS=$IFS_BAK
    IFS_BAK=

}

print_sites_transformer_status() {
    sites_transformer_status

    if [[ -z $SITES_TR ]];
    then
       print_message "$TRANSF210" "$TRANSF209" "" any_key
       exit
    fi

    IFS_BAK=$IFS
    IFS=$'\n'
    print_color_text "                 $TRANSF009"
    echo $MENU_SPACER
    printf "%-35s | %s\n" "SiteName" "DocumentRoot"
    echo $MENU_SPACER

    for line in $(echo -e "$SITES_TR"); do
        site_name=$(echo "$line" | awk -F':' '{print $1}')
        site_dir=$(echo "$line" | awk -F':' '{print $2}')
        printf "%-35s | %s\n" $site_name $site_dir
    done
    echo $MENU_SPACER
    echo
}

# get status for web servers
# return
# TR_SERVER - transformer server name
# TR_SITE - transformer site
# TR_CHOICE - possible choice for transformer server
get_transformer_status() {
    TR_SERVER=
    TR_SITE=
    TR_DIR=
    TR_CHOICE=

    # get info from ansible configuration
    local info=$($bx_host_script)
    local erro=$(echo "$info" | grep '^error:' | sed -e "s/^error://")
    local mesg=$(echo "$info" | grep '^message:' | sed -e "s/^message://")

    if [[ -n $erro ]];
    then
        print_message "$TRANSF010" "$mesg" "" any_key
        exit
    fi

    # host:vm04:192.168.3.36:mgmt,mysql_master_1,transformer,web:1593762477_1HlCHyL4NS:vm04:sitename;/home/bitrix/ext_www/sitename
    IFS_BAK=$IFS
    IFS=$'\n'
    for line in $info; do
        hostname=$(echo "$line" | awk -F':' '{print $2}')
        ipaddr=$(echo "$line" | awk -F':' '{print $3}')
        groups=$(echo "$line" | awk -F':' '{print $4}')

        if [[ $(echo "$groups" | grep -wc "transformer") -gt 0 ]];
        then
            TR_SERVER="$hostname"
            TR_SITE="$(echo "$line" | awk -F':' '{print $7}' | awk -F';' '{print $1}')"
            TR_DIR="$(echo "$line" | awk -F':' '{print $7}' | awk -F';' '{print $2}')"
        fi

        if [[ $(echo $groups| grep -wc "mgmt") -gt 0  ]];
        then
            TR_CHOICE="$hostname"
        fi
    done
    IFS=$IFS_BAK
    IFS_BAK=

    TR_INFO="$TR_SERVER:$TR_SITE:$TR_DIR:$TR_CHOICE"
}

cache_transfomer_status() {
    TR_INFO=
    TR_SERVERS_CACHE=$CACHE_DIR/tr_servers.cache             # cache file
    TR_SERVERS_CACHE_LT=3600                                         # live time for cache file in seconds

    test_cache_file $TR_SERVERS_CACHE $TR_SERVERS_CACHE_LT
    if [[ $? -gt 0 ]];
    then
        get_transformer_status
        echo "$TR_INFO" > $TR_SERVERS_CACHE
    else
        TR_INFO=$(cat $TR_SERVERS_CACHE)
        TR_SERVER=$(echo "$TR_INFO" | awk -F':' '{print $1}')
        TR_SITE=$(echo "$TR_INFO" | awk -F':' '{print $2}')
        TR_DIR=$(echo "$TR_INFO" | awk -F':' '{print $3}')
        TR_CHOICE=$(echo "$TR_INFO" | awk -F':' '{print $4}')
    fi

    if [[ $DEBUG -gt 0 ]];
    then
        echo "TR_SERVER=$TR_SERVER"
        echo "TR_SITE=$TR_SITE"
        echo "TR_DIR=$TR_DIR"
        echo "TR_CHOICE=$TR_CHOICE"
    fi
}

print_transformer_status() {
    cache_transfomer_status

    if [[ -z $TR_SERVER ]];
    then
        echo "                 $TRANSF011"
        return 1
    fi

    print_color_text "                 $TRANSF012"
    echo $MENU_SPACER
    printf "%-17s | %20s| %s\n" "Hostname" "SiteName" "DocumentRoot"
    echo $MENU_SPACER
    printf "%-17s | %20s| %s\n" "$TR_SERVER" "$TR_SITE" "$TR_DIR"
    echo $MENU_SPACER
    echo
}

Youez - 2016 - github.com/yon3zu
LinuXploit