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/01_hosts/ |
Upload File : |
#!/usr/bin/bash # PROGNAME=$(basename $0) PROGPATH=$(dirname $0) . $PROGPATH/functions.sh || exit 1 [[ -z $DEBUG ]] && DEBUG=0 get_os_type sub_menu_update_php() { local min_php_version="${1:-255}" local phost_name="${2}" local host_logo="$HM0088" local menu_exit="$HM0042" local up_php84="1. $HM00889" local up_php83="2. $HM00888" local up_php82="3. $HM00887" # local up_php81="3. $HM00886" # local up_php80="4. $HM00885" # local up_php74="5. $HM00884" # local up_php73="6. $HM00883" # local up_php72="7. $HM00882" # local up_php71="8. $HM00881" # local up_php70="9. $HM00880" # local up_php56="10. $HM0087" local up_menu="" [[ $min_php_version -ge 56 && $min_php_version -lt 82 && $OS_VERSION -gt 6 ]] && up_menu=" "$up_php82"\n\t\t"$up_menu [[ $min_php_version -ge 56 && $min_php_version -lt 83 && $OS_VERSION -gt 6 ]] && up_menu=" "$up_php83"\n\t\t"$up_menu [[ $min_php_version -ge 56 && $min_php_version -lt 84 && $OS_VERSION -gt 6 ]] && up_menu=" "$up_php84"\n\t\t"$up_menu # [[ $min_php_version -ge 56 && $min_php_version -lt 81 && $OS_VERSION -gt 6 ]] && up_menu=$up_menu"\n\t$up_php81" # [[ $min_php_version -ge 56 && $min_php_version -lt 80 && $OS_VERSION -gt 6 ]] && up_menu=$up_menu"\n\t$up_php80" # [[ $min_php_version -ge 56 && $min_php_version -lt 74 && $OS_VERSION -gt 6 ]] && up_menu=$up_menu"\n\t$up_php74" # [[ $min_php_version -ge 56 && $min_php_version -lt 73 ]] && up_menu=$up_menu"\n\t$up_php73" # [[ $min_php_version -ge 56 && $min_php_version -lt 72 ]] && up_menu=$up_menu"\n\t$up_php72" # [[ $min_php_version -ge 56 && $min_php_version -lt 71 ]] && up_menu=$up_menu"\n\t$up_php71" # [[ $min_php_version -ge 56 && $min_php_version -lt 70 ]] && up_menu=$up_menu"\n\t$up_php70" # [[ $min_php_version -lt 56 ]] && up_menu=$up_menu"\n\t$up_php56" menu_list="$menu_exit\n\t\t$up_menu" UP_MENU= upgrade_cmd= upgrade_version= until [[ -n "$UP_MENU" ]]; do [[ $DEBUG -eq 0 ]] && clear echo -e "\t\t" $logo echo -e "\t\t" $host_logo echo print_mysql_php_version "$phost_name" echo "$(get_text "$HM0101" "${min_php_version:0:1}.${min_php_version:1:2}")" print_menu print_message "$HM0204" '' '' UP_MENU # # test main module version # # update php 5.6 to 7.0 version # if [[ $UP_MENU -ge 1 && $UP_MENU -le 5 && $min_php_version -eq 56 ]]; then # test_main_module_for_php7 # test_main_module_for_php7_rtn=$? # echo "test_main_module_for_php7_rtn=$test_main_module_for_php7_rtn" # if [[ $test_main_module_for_php7_rtn -gt 1 ]]; then # print_message "$TEST_PHP7_NOTPASS" "$(get_text "$HM0029" "$MAIN_LOWER_VERSION")" '' ANY_KEY # error_pick # UP_MENU= # continue # elif [[ $test_main_module_for_php7_rtn -gt 0 ]]; then # print_message "$TEST_PHP7_SKIP" "$HM0031" "" ANY_KEY # fi # fi case "$UP_MENU" in "0") return 1 ;; "1") echo "$UP_MENU" if [[ $min_php_version -ge 84 || $OS_VERSION -eq 6 ]]; then error_pick UP_MENU= continue fi upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php84 --host $phost_name " upgrade_version="8.4" ;; "2") echo "$UP_MENU" if [[ $min_php_version -ge 83 || $OS_VERSION -eq 6 ]]; then error_pick UP_MENU= continue fi upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php83 --host $phost_name " upgrade_version="8.3" ;; "3") if [[ $min_php_version -ge 82 || $OS_VERSION -eq 6 ]]; then error_pick UP_MENU= continue fi upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php82 --host $phost_name " upgrade_version="8.2" ;; *) error_pick UP_MENU= ;; # "3") # if [[ $min_php_version -ge 81 || $OS_VERSION -eq 6 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php81 --host $phost_name " # upgrade_version="8.1" # ;; # "4") # if [[ $min_php_version -ge 80 || $OS_VERSION -eq 6 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php80 --host $phost_name " # upgrade_version="8.0" # ;; # "5") # if [[ $min_php_version -ge 74 || $OS_VERSION -eq 6 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php74 --host $phost_name " # upgrade_version="7.4" # ;; # "6") # if [[ $min_php_version -ge 73 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php73 --host $phost_name" # upgrade_version="7.3" # ;; # "7") # if [[ $min_php_version -ge 72 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php72 --host $phost_name" # upgrade_version="7.2" # ;; # "8") # if [[ $min_php_version -ge 71 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php71 --host $phost_name" # upgrade_version="7.1" # ;; # "9") # if [[ $min_php_version -ge 70 ]]; then # error_pick # UP_MENU= # continue # fi # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php70 --host $phost_name" # upgrade_version="7.0" # ;; # "10") # if [[ $min_php_version -lt 56 ]]; then # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade_php56 --host $phost_name" # upgrade_version="5.6" # else # error_pick # UP_MENU= # continue # fi # ;; esac done if [[ $DEBUG -gt 0 ]]; then echo "upgrade_cmd=[$upgrade_cmd]" fi [[ -z $upgrade_cmd ]] && return 0 print_color_text "$HM0075" red -e echo "$(get_text "$HM0099" "$upgrade_version")" print_message "$(get_text "$HM0079" "update")" "" "" confirm 'n' [[ $(echo "$confirm" | grep -iwc 'y') -eq 0 ]] && return 1 exec_pool_task "$upgrade_cmd" "update php to $upgrade_version" } sub_menu_downgrade_php() { local min_php_version="${1:-255}" local phost_name="${2}" local host_logo="$HM0089" local menu_exit="$HM0042" # local down_php56="1. $HM00890" # local down_php70="2. $HM00891" # local down_php71="3. $HM00892" # local down_php72="4. $HM00893" # local down_php73="5. $HM00894" # local down_php74="6. $HM00895" # local down_php80="7. $HM00896" local down_php81="1. $HM00897" local down_php82="2. $HM00898" local down_php83="3. $HM00899" local down_menu="" # [[ $min_php_version -gt 56 && $BITRIX_ENV_TYPE != "crm" ]] && down_menu=$down_menu"\n\t$down_php56" # [[ $min_php_version -gt 70 && $BITRIX_ENV_TYPE != "crm" ]] && down_menu=$down_menu"\n\t$down_php70" # [[ $min_php_version -gt 71 ]] && down_menu=$down_menu"\n\t$down_php71" # [[ $min_php_version -gt 72 ]] && down_menu=$down_menu"\n\t$down_php72" # [[ $min_php_version -gt 73 ]] && down_menu=$down_menu"\n\t$down_php73" # [[ $min_php_version -gt 74 ]] && down_menu=$down_menu"\n\t$down_php74" # [[ $min_php_version -gt 80 ]] && down_menu=$down_menu"\n\t$down_php80" [[ $min_php_version -gt 83 ]] && down_menu=" "$down_php83"\n\t\t"$down_menu [[ $min_php_version -gt 82 ]] && down_menu=" "$down_php82"\n\t\t"$down_menu [[ $min_php_version -gt 81 ]] && down_menu=" "$down_php81"\n\t\t"$down_menu menu_list="$menu_exit\n\t\t$down_menu" DOWN_MENU= down_cmd= down_version= until [[ -n "$DOWN_MENU" ]]; do [[ $DEBUG -eq 0 ]] && clear echo -e "\t\t" $logo echo -e "\t\t" $host_logo echo print_mysql_php_version "$phost_name" echo "$(get_text "$HM0101" "${min_php_version:0:1}.${min_php_version:1:2}")" print_menu print_message "$HM0204" '' '' DOWN_MENU case "$DOWN_MENU" in "0") return 1 ;; "1") if [[ $min_php_version -le 81 ]]; then error_pick DOWN_MENU= continue fi down_cmd="$ansible_wrapper -a bx_php_rollback_php81 --host ${phost_name}" down_version="8.1" ;; "2") if [[ $min_php_version -le 82 ]]; then error_pick DOWN_MENU= continue fi down_cmd="$ansible_wrapper -a bx_php_rollback_php82 --host ${phost_name}" down_version="8.2" ;; "3") if [[ $min_php_version -le 83 ]]; then error_pick DOWN_MENU= continue fi down_cmd="$ansible_wrapper -a bx_php_rollback_php83 --host ${phost_name}" down_version="8.3" ;; *) error_pick DOWN_MENU= ;; # "1") # if [[ $min_php_version -le 56 || $BITRIX_ENV_TYPE == "crm" ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php7 --host ${phost_name}" # down_version="5.6" # ;; # "2") # if [[ $min_php_version -le 70 || $BITRIX_ENV_TYPE == "crm" ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php70 --host ${phost_name}" # down_version="7.0" # ;; # "3") # if [[ $min_php_version -le 71 ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php71 --host ${phost_name}" # down_version="7.1" # ;; # "4") # if [[ $min_php_version -le 72 ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php72 --host ${phost_name}" # down_version="7.2" # ;; # "5") # if [[ $min_php_version -le 73 ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php73 --host ${phost_name}" # down_version="7.3" # ;; # "6") # if [[ $min_php_version -le 74 ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php74 --host ${phost_name}" # down_version="7.4" # ;; # "7") # if [[ $min_php_version -le 80 ]]; then # error_pick # DOWN_MENU= # continue # fi # down_cmd="$ansible_wrapper -a bx_php_rollback_php80 --host ${phost_name}" # down_version="8.0" # ;; esac done if [[ $DEBUG -gt 0 ]]; then echo "down_cmd=[$down_cmd]" fi [[ -z $down_cmd ]] && return 0 print_color_text "$HM0077" red -e echo "$(get_text "$HM0100" "$down_version")" print_message "$(get_text "$HM0079" "downgrade")" "" "" confirm 'n' [[ $(echo "$confirm" | grep -iwc 'y') -eq 0 ]] && return 1 exec_pool_task "$down_cmd" "downgrade php to $down_version" } sub_upgrade_mysql() { local min_mysql_version=${1:-255} local phost_name=${2} local host_logo="$HM010201" local menu_exit="$HM0042" # local up_mysql57="1. $HM010202" # local up_mysql55="1. $HM010203" # local up_mysql58="1. $HM010205" local up_menu="\n\t\t$menu_exit" # [[ $min_mysql_version -eq 57 && $OS_VERSION -gt 6 ]] && up_menu="\n\t$menu_exit\n\t$up_mysql58" # [[ $min_mysql_version -lt 57 ]] && up_menu="\n\t$menu_exit\n\t$up_mysql57" # [[ $min_mysql_version -lt 55 ]] && up_menu="\n\t$menu_exit\n\t$up_mysql55" menu_list="$up_menu" UP_MENU= upgrade_cmd= upgrade_version= until [[ -n "$UP_MENU" ]]; do [[ $DEBUG -eq 0 ]] && clear echo -e "\t\t" $logo echo -e "\t\t" $host_logo echo print_mysql_php_version "${phost_name}" echo "$(get_text "$HM0102" "${min_mysql_version:0:1}.${min_mysql_version:1:2}")" print_menu print_message "$HM0204" '' '' UP_MENU case "$UP_MENU" in "0") return 1 ;; *) error_pick UP_MENU= ;; # "1") # if [[ $min_mysql_version -lt 80 && $min_mysql_version -ge 57 && $OS_VERSION -gt 6 ]]; then # upgrade_cmd="$ansible_wrapper -a bx_upgrade_mysql80 --host $phost_name" # upgrade_version="8.0" # upgrade_desc="update MySQL to $upgrade_version" # elif [[ $min_mysql_version -lt 57 && $min_mysql_version -ge 55 ]]; then # upgrade_cmd="$ansible_wrapper -a bx_upgrade_mysql57 --host $phost_name" # upgrade_version="5.7" # upgrade_desc="update MySQL to $upgrade_version" # elif [[ $min_mysql_version -lt 55 ]]; then # upgrade_cmd="$ansible_wrapper -a bx_php_upgrade --host $phost_name" # upgrade_version="5.5" # upgrade_desc="update mysql to $upgrade_version and php to 5.6" # else # error_pick # UP_MENU= # continue # fi # ;; esac done if [[ $DEBUG -gt 0 ]]; then echo "upgrade_cmd=[$upgrade_cmd]" fi if [[ $upgrade_version == "5.7" ]]; then print_color_text "$HM0080" red echo "$HM0081" echo elif [[ $upgrade_version == "5.5" ]]; then print_color_text "$HM0075" red echo "$HM0083" echo fi print_message "$(get_text "$HM0079" "update")" "" "" confirm 'n' [[ $(echo "$confirm" | grep -iwc 'y') -eq 0 ]] && return 1 # exec_pool_task "$upgrade_cmd" "$upgrade_desc" } # select update type for the host select_update_type() { local select_hname="${1}" if [[ $select_hname != "all" ]]; then cur_id=$(get_server_id "$select_hname") cur_id_rtn=$? if [[ $cur_id_rtn -eq 1 ]]; then print_message "$HM0200" "$(get_text "$HM0013" "$host_ident")" "" any_key return 1 elif [[ $cur_id_rtn -eq 2 ]]; then print_message "$HM0200" "$(get_text "$HM0012" "$host_ident")" return 1 elif [[ $cur_id_rtn -eq 3 ]]; then print_message "$HM0200" "$HM0044" return 1 fi fi H_SELECT= local host_logo="$HM0085" # very old options # local menu_php_and_mysql="1. $HM0086" # Update PHP to version 5.4 and MySQL to version 5.5 # local menu_php54_56="1. $HM0087" # Update PHP to version 5.6 # current one local menu_php_upgrade="1. $HM0088" # Upgrade PHP local menu_php_downgrade="2. $HM0089" # Downgrade PHP # local menu_mysql_upgrade="3. $HM010201" # update mysql server # status local menu_status="1. $HM0091" # Show current status until [[ -n "$H_SELECT" ]]; do [[ $DEBUG -eq 0 ]] && clear echo -e "\t\t" $logo echo -e "\t\t" $host_logo echo print_mysql_php_version "${select_hname}" if [[ $DEBUG -gt 0 ]]; then echo "MYSQl VERSION: $MYSQL_VERSION" echo "PHP VERSION: $PHP_VERSION" fi # menu_list="" # if [[ $PHP_VERSION -le 83 ]]; then # menu_list="${menu_php_upgrade}\n\t\t" # fi # if [[ $PHP_VERSION -gt 80 ]]; then # menu_list="${menu_php_downgrade}\n\t\t" # fi menu_list="$menu_exit\n\t\t $menu_php_upgrade\n\t\t $menu_php_downgrade" # if [[ ${select_hname} != "all" ]]; then # if [[ $MYSQL_VERSION -le 51 ]]; then # menu_list="${menu_list}\n\t${menu_php54_56}" # elif [[ $MYSQL_VERSION -lt 80 ]]; then # menu_list="${menu_list}\n\t${menu_mysql_upgrade}" # fi # fi print_menu print_message "$HM0204" '' '' H_SELECT # process selection case "$H_SELECT" in "0") return 0 ;; "1") sub_menu_update_php "$PHP_VERSION" "$select_hname" ;; "2") sub_menu_downgrade_php "$PHP_VERSION" "$select_hname" ;; # "3") sub_upgrade_mysql "$MYSQL_VERSION" "$select_hname" ;; *) error_pick ;; esac H_SELECT= done exit } # select one host min the Bitrix pool sub_menu() { local host_logo="$HM0085" local menu_exit="$HM0042" local menu_exit="$HM0042" # 0. Previous screen or exit local menu_update="$HM10001" # Update or rollback software on the server local menu_select_message="$HM0205" # Enter hostname or 0 to exit MENU_SELECT= until [[ -n "$MENU_SELECT" ]]; do [[ $DEBUG -eq 0 ]] && clear echo -e "\t\t" $logo echo -e "\t\t" $host_logo echo print_mysql_php_version MASTER_MYSQL_VERSION="$MYSQL_VERSION" MASTER_PHP_VERSION="$PHP_VERSION" if [[ $DEBUG -gt 0 ]]; then echo "MASTER MYSQL VERSION: $MASTER_MYSQL_VERSION" echo "MASTER PHP VERSION: $MASTER_PHP_VERSION" fi get_task_by_type '(common|web_cluster|mysql|monitor)' POOL_SUBMENU_TASK_LOCK POOL_SUBMENU_TASK_INFO print_task_by_type '(common|web_cluster|mysql|monitor)' "$POOL_SUBMENU_TASK_LOCK" "$POOL_SUBMENU_TASK_INFO" menu_list="${menu_update}\n\t\t ${menu_exit}" if [[ $POOL_SUBMENU_TASK_LOCK -eq 1 ]]; then menu_list="$menu_exit" fi print_menu if [[ $POOL_SUBMENU_TASK_LOCK -eq 1 ]]; then print_message "$HM0202" '' '' MENU_SELECT 0 else print_message "$menu_select_message" "$HM10002" '' MENU_SELECT 0 fi case "$MENU_SELECT" in 0) exit ;; *) select_update_type "$MENU_SELECT" ;; esac MENU_SELECT= done } sub_menu