%PDF- %PDF-
Direktori : /opt/webdir/bin/menu/06_site/ |
Current File : //opt/webdir/bin/menu/06_site/functions.sh |
BASE_DIR=/opt/webdir BIN_DIR=$BASE_DIR/bin . $BIN_DIR/bitrix_utils.sh || exit 1 ansible_web_group=/etc/ansible/group_vars/bitrix-web.yml bx_sites_script=$BIN_DIR/bx-sites sites_menu=$BIN_DIR/menu/06_site mysql_menu_dir=$BIN_DIR/menu/03_mysql mysql_menu_fnc=$mysql_menu_dir/functions.sh . $mysql_menu_fnc || exit 1 push_menu_dir=$BIN_DIR/menu/10_push push_menu_fnc=$push_menu_dir/functions.sh . $push_menu_fnc || exit 1 # get_text variables [[ -f $sites_menu/functions.txt ]] && \ . $sites_menu/functions.txt # check mysql password and client config before start site creation check_site_options(){ # test csync or lsyncd WEB_CLUSTER_TYPE=$(cat $ansible_web_group | grep -v "^$\|^#" | \ egrep '^fstype: ' | awk -F':' '{print $2}' | sed -e "s/\s\+//g") if [[ -z $WEB_CLUSTER_TYPE ]]; then WEB_CLUSTER_STATUS=$(cat $ansible_web_group | grep -v "^$\|^#" | \ egrep '^cluster_web_configure: ' | \ awk -F':' '{print $2}' | sed -e "s/\s\+//g") if [[ $WEB_CLUSTER_STATUS == "enable" ]]; then WEB_CLUSTER_TYPE=csync else WEB_CLUSTER_TYPE=lsync fi fi # test push server status cache_push_servers_status # test mysql passwords cache_mysql_servers_status [[ $DEBUG -gt 0 ]] && echo "MYSQL=$MYSQL_SERVERS" MASTER_NAME=$(echo "$MYSQL_SERVERS" | grep ":master:" | \ awk -F':' '{print $1}') MASTER_ROOT_PASSWD=$(echo "$MYSQL_SERVERS" | grep ":master:" | \ awk -F':' '{print $8}') MASTER_CLIENT_CNF=$(echo "$MYSQL_SERVERS" | grep ":master:" | \ awk -F':' '{print $9}') if [[ $MASTER_ROOT_PASSWD != "Y" ]]; then print_color_text "Found MySQL service with empty root password: $MASTER_NAME" print_color_text "You can fix this by using second item in the MySQL menu." blue return 10 fi if [[ $MASTER_CLIENT_CNF != "Y" ]]; then print_color_text "Not found MySQL client config: $MASTER_NAME" print_color_text "You can fix this by using second item in the MySQL menu." blue return 11 fi } # list all sites # fill out # POOL_SITES_KERNEL_LIST - kernel sites with web access # POOL_SITES_KERNEL_COUNT - number of kernel sites with web access # POOL_SITES_LINK_LIST - link sites # POOL_SITES_LINK_COUNT - links count # POOL_SITES_ERRORS_LIST - sites with errors # POOL_SITES_ERRORS_COUNT - count sites with errors get_pool_sites(){ _process_inf=$($bx_sites_script -a list) _process_err=$(echo "$_process_inf" | grep '^error:' | sed -e "s/^error://") _process_msg=$(echo "$_process_msg" | grep '^message:' | sed -e "s/^message://") if [[ -n "$_process_err" ]]; then POOL_SITES_KERNEL_COUNT=0 POOL_SITES_LINK_COUNT=0 POOL_SITES_ERRORS_COUNT=0 else POOL_SITES_KERNEL_LIST=$(echo "$_process_inf" | \ grep '^bxSite:general' | sed -e "s/^bxSite:general://" | grep ':\(kernel\|ext_kernel\):' ) POOL_SITES_LINK_LIST=$(echo "$_process_inf" | \ grep '^bxSite:general' | sed -e "s/^bxSite:general://" | grep ':link:' ) POOL_SITES_ERRORS_LIST=$(echo "$_process_inf" | \ grep '^bxSite:status' | sed -e "s/^bxSite:status://" | grep ':error:') POOL_SITES_KERNEL_COUNT=$(echo "$POOL_SITES_KERNEL_LIST" | grep -vc '^$') POOL_SITES_LINK_COUNT=$(echo "$POOL_SITES_LINK_LIST" | grep -vc '^$') POOL_SITES_ERRORS_COUNT=$(echo "$POOL_SITES_ERRORS_LIST" | grep -vc '^$') fi } cache_pool_sites(){ POOL_SITES_CACHE_LT=${1:-3600} POOL_SITES_KERNEL_LIST= POOL_SITES_LINK_LIST= POOL_SITES_ERRORS_LIST= POOL_SITES_KERNEL_CACHE=$CACHE_DIR/sites_kernel.cache POOL_SITES_LINK_CACHE=$CACHE_DIR/sites_links.cache POOL_SITES_ERRORS_CACHE=$CACHE_DIR/sites_errors.cache test_cache_file $POOL_SITES_KERNEL_CACHE $POOL_SITES_CACHE_LT pool_kernel_cache=$? test_cache_file $POOL_SITES_LINK_CACHE $POOL_SITES_CACHE_LT pool_link_cache=$? test_cache_file $POOL_SITES_ERRORS_CACHE $POOL_SITES_CACHE_LT pool_error_cache=$? if [[ ( $pool_kernel_cache -gt 0 ) || ( $pool_link_cache -gt 0 ) || ( $pool_error_cache -gt 0 ) ]]; then get_pool_sites echo "$POOL_SITES_KERNEL_LIST" > $POOL_SITES_KERNEL_CACHE echo "$POOL_SITES_LINK_LIST" > $POOL_SITES_LINK_CACHE echo "$POOL_SITES_ERRORS_LIST" > $POOL_SITES_ERRORS_CACHE else POOL_SITES_KERNEL_LIST=$(cat $POOL_SITES_KERNEL_CACHE) POOL_SITES_LINK_LIST=$(cat $POOL_SITES_LINK_CACHE) POOL_SITES_ERRORS_LIST=$(cat $POOL_SITES_ERRORS_CACHE) POOL_SITES_KERNEL_COUNT=$(echo "$POOL_SITES_KERNEL_LIST" | grep -vc '^$') POOL_SITES_LINK_COUNT=$(echo "$POOL_SITES_LINK_LIST" | grep -vc '^$') POOL_SITES_ERRORS_COUNT=$(echo "$POOL_SITES_ERRORS_LIST" | grep -vc '^$') fi } # print error site info print_pool_sites_error(){ [[ -z "$POOL_SITES_ERRORS_COUNT" ]] && cache_pool_sites if [[ $POOL_SITES_ERRORS_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_ERRORS_COUNT sites with errors:" red echo $MENU_SPACER printf "%-15s | %-15s | %s\n" \ "SiteName" "ErrorN" "ErrorMessage" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $POOL_SITES_ERRORS_LIST; do err_site_name=$(echo "$line" | awk -F':' '{print $1}') err_site_code=$(echo "$line" | awk -F"'" '{print $2}' | awk -F'|' '{print $1}') err_site_mess=$(echo "$line" | awk -F"'" '{print $2}' | awk -F'|' '{print $2}') printf "%-15s | %-15s | %s\n" \ "$err_site_name" "$err_site_code" "$err_site_mess" done IFS=$IFS_BAK IFS_BAK= echo $MENU_SPACER print_message "Press ENTER for exit:" "" "" any_key else echo "Not found sites with errors" print_message "Press ENTER for exit:" "" "" any_key fi } get_all_sites_list(){ cache="${1}" exclude="${2:-ext_kernel}" cache_pool_sites $cache if [[ $exclude == "ext_kernel" ]]; then POOL_SITES_KERNEL_LIST=$(echo "$POOL_SITES_KERNEL_LIST" | grep -v ':ext_kernel:') fi if [[ $exclude == "link" ]]; then POOL_SITES_LIST="$POOL_SITES_KERNEL_LIST" else POOL_SITES_LIST="$POOL_SITES_KERNEL_LIST $POOL_SITES_LINK_LIST" fi POOL_SITES_KERNEL_COUNT=$(echo "$POOL_SITES_KERNEL_LIST" | grep -vc '^$') POOL_SITES_COUNT=$(echo "$POOL_SITES_LIST" | grep -vc '^$') } # print info for installed sites # fill out variable # SITES_LIST_WITH_NUMBER print_pool_sites(){ _filter_by_db=$1 _only_kernel=$2 cache_pool_sites [[ -z $_only_kernel ]] && _only_kernel="N" _echo_db_kernel=$_filter_by_db [[ -z "$_echo_db_kernel" ]] && _echo_db_kernel="not filtered" # additional variables for filter by DBname _pool_filtered_kernel=$POOL_SITES_KERNEL_LIST _pool_filtered_link=$POOL_SITES_LINK_LIST if [[ -n "$_filter_by_db" ]]; then _pool_filtered_kernel=$(echo "$_pool_filtered_kernel" | grep ":$_filter_by_db:") _pool_filtered_link=$(echo "$_pool_filtered_link" | grep ":$_filter_by_db:") fi _pool_filtered_kernel_count=$(echo "$_pool_filtered_kernel" | grep -vc '^$') _pool_filtered_link_count=$(echo "$_pool_filtered_link" | grep -vc '^$') SITES_LIST_WITH_NUMBER="" if [[ $_pool_filtered_kernel_count -gt 0 ]]; then _db_list="" print_color_text "Found $_pool_filtered_kernel_count kernel sites:" blue echo $MENU_SPACER printf "%3s| %-15s | %-15s | %15s | %10s | %1s | %1s | %s\n" \ "ID" "SiteName" "dbName" "Status" "Type" "S" "C" "DocumentRoot" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' COUNT=1 for line in $_pool_filtered_kernel do # default:sitemanager0:kernel:finished:srv01.ksh.bx:/home/bitrix/www:utf-8:Y:N _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_tp=$(echo "$line" | awk -F':' '{print $3}') # site type _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_sr=$(echo "$line" | awk -F':' '{print $5}') # full servername _site_rt=$(echo "$line" | awk -F':' '{print $6}') # document root _site_ch=$(echo "$line" | awk -F':' '{print $7}') # charset _site_sc=$(echo "$line" | awk -F':' '{print $8}') # scale _site_cl=$(echo "$line" | awk -F':' '{print $9}') # cluster printf "%3d| %-15s | %-15s | %15s | %10s | %1s | %1s | %s\n" \ "$COUNT" "$_site_id" "$_site_db" "$_site_st" "$_site_tp" "$_site_sc" "$_site_cl" "$_site_rt" _db_list=$_db_list"$_site_db " SITES_LIST_WITH_NUMBER=$SITES_LIST_WITH_NUMBER"$COUNT:$_site_id:$_site_db:$_site_st:$_site_tp:$_site_rt:$_site_sr " COUNT=$(($COUNT+1)) done IFS=$IFS_BAK IFS_BAK= echo $MENU_SPACER _db_list=$(echo "$_db_list" | sed -e 's/\s\+$//' | sort | uniq) if [[ ( $_pool_filtered_link_count -gt 0 ) && ( "$_only_kernel" == "N" ) ]]; then for _db_found in $_db_list; do _db_count=$(echo "$_pool_filtered_link" | grep -c ":$_db_found:") if [[ $_db_count -gt 0 ]]; then print_color_text "$_db_found: $_db_count link sites" green _pool_db_links=$(echo "$_pool_filtered_link" | grep ":$_db_found:") echo $MENU_SPACER printf "%3s| %-15s | %-15s | %15s | %10s | %s\n" \ "ID" "SiteName" "dbName" "Status" "Type" "DocumentRoot" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $_pool_db_links do _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_tp=$(echo "$line" | awk -F':' '{print $3}') # site type _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_sr=$(echo "$line" | awk -F':' '{print $5}') # full servername _site_rt=$(echo "$line" | awk -F':' '{print $6}') # document root printf "%3d| %-15s | %-15s | %15s | %10s | %s\n" \ "$COUNT" "$_site_id" "$_site_db" "$_site_st" "$_site_tp" "$_site_rt" SITES_LIST_WITH_NUMBER=$SITES_LIST_WITH_NUMBER"$COUNT:$_site_id:$_site_db:$_site_st:$_site_tp:$_site_rt:$_site_sr " COUNT=$(($COUNT+1)) done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER fi done fi print_color_text "Note:" blue echo "S - scale module (Y = installed, N = not installed)" echo "C - cluster module (Y = installed, N = not installed)" echo else echo "Not found installed sites in the pool" fi } # get site information get_site_info() { site_name=$1 site_root=$2 type_info=$3 [[ -z $_type_info ]] && _type_info=general site_info_inf=$($bx_sites_script -a status -s $site_name -r $site_root) site_info_err=$(echo "$site_info_inf" | grep "^error:" | sed -e 's/error://') site_info_msg=$(echo "$site_info_inf" | grep "^message:" | sed -e 's/message://') site_info_dat=$(echo "$site_info_inf" | grep "^bxSite:$type_info:" | \ sed -e "s/bxSite://") if [[ -n "$site_info_err" ]]; then print_message "Press ENTER for exit" "$site_info_msg" \ "" any_key exit fi } # print info about services enabled on site in cron print_site_list_point_cron(){ cache_pool_sites if [[ $POOL_SITES_KERNEL_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_KERNEL_COUNT kernel sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %15s | %5s | %s\n" \ "SiteName" "dbName" "Status" "Cron" "DocumentRoot" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' POOL_SITES_CRON_SERVICES_LIST="" for line in $POOL_SITES_KERNEL_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':cron:' | sed -e 's/^bxSite:cron://') # ext_share:dbcp:enable:/etc/cron.d/bx_dbcp _site_cron=$(echo "$_site_info" | awk -F':' '{print $3}' | \ sed -e 's/enable/Y/;s/disable/N/;') printf "%-15s | %-15s | %15s | %5s | %s\n" \ "$_site_id" "$_site_db" "$_site_st" "$_site_cron" "$_site_root" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not found kernel sites on the server" blue fi } # fill out COMPOSITE_ERROR get_composite_errors(){ local process_inf=$($bx_sites_script -a list) # bxSite:composite_error:default:Fatal error: Call to undefined function json_encode() in /vagrant/env/opt/webdir/bin/composite.php on line 14 COMPOSITE_ERRORS=$(echo "$process_inf" | grep -w composite_error) COMPOSITE_ERRORS_MESSAGE= COMPOSITE_ERRORS_CNT=0 if [[ -n "$COMPOSITE_ERRORS" ]]; then IFS_BAK=$IFS IFS=$'\n' for error in $COMPOSITE_ERRORS; do site_name=$(echo "$error" | awk -F':' '{print $3}') error_message=$(echo "$error" | sed -e "s/bxSite:composite_error:$site_name://") COMPOSITE_ERRORS_MESSAGE=" -> Site $site_name: $error_message" COMPOSITE_ERRORS_CNT=$(( $COMPOSITE_ERRORS_CNT+1 )) done IFS=$IFS_BAK IFS_BAK= return 1 fi return 0 } # print info about composite settings in nginx configs print_site_list_point_composite(){ get_all_sites_list 1 if [[ $POOL_SITES_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_COUNT sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %10s | %9s | %5s | %s\n" \ "SiteName" "dbName" "Type" "Composite" "Nginx" "Storage" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $POOL_SITES_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8:Y:Y:Y:N:files _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_type=$(echo "$line" | awk -F':' '{print $3}') # type: kernel, ext_kernel composite_status=$(echo "$line" | awk -F':' '{print $10}') nginx_composite=$(echo "$line" | awk -F':' '{print $11}') composite_storage=$(echo "$line" | awk -F':' '{print $12}') printf "%-15s | %-15s | %10s | %9s | %5s | %s\n" \ "$_site_id" "$_site_db" "$_site_type" "$composite_status" "$nginx_composite" "$composite_storage" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER get_composite_errors get_composite_errors_rtn=$? if [[ $get_composite_errors_rtn -gt 0 ]]; then print_color_text "$COMPOSITE_ERRORS_CNT errors while parsing composite config:" red echo "$COMPOSITE_ERRORS_MESSAGE" fi else print_color_text "Not sites on the server" blue fi } # print info about enable or disable https print_site_list_point_https(){ get_all_sites_list if [[ $POOL_SITES_COUNT -gt 0 ]]; then print_color_text "There are $POOL_SITES_COUNT sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %10s | %1s | %-20s | %s\n" \ "SiteName" "dbName" "Type" "S" "Certificate" "Key" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $POOL_SITES_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_type=$(echo "$line" | awk -F':' '{print $3}') # type: kernel, ext_kernel _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':https:' | sed -e 's/^bxSite:https://') # default:sitemanager0:disable:/etc/nginx/ssl/cert.pem:/etc/nginx/ssl/cert.pem:/etc/nginx/bx/conf/ssl.conf https_cert=$(echo "$_site_info" | awk -F':' '{print $4}' | \ sed -e "s:/etc/nginx/::") https_key=$(echo "$_site_info" | awk -F':' '{print $5}' | \ sed -e "s:/etc/nginx/::") _https_enable=$(echo "$_site_info" | \ awk -F':' '{print $3}' | sed -e 's/enable/Y/;s/disable/N/;' ) printf "%-15s | %-15s | %10s | %1s | %-20s | %s\n" \ "$_site_id" "$_site_db" "$_site_type" "$_https_enable" \ "$https_cert" "$https_key" done IFS=$IFS_BAK IFS_BAK= echo $MENU_SPACER print_color_text "Note:" blue echo "S - Only HTTPS access to the server (N = turned off, Y = turned on)" echo else print_color_text "Not sites on the server" blue fi # push server need certificate cache_push_servers_status if [[ $PUSH_SERVERS_CNT -eq 0 ]]; then PUSH_STREAM_SERVER=$(echo "$PUSH_SERVERS" | \ awk -F':' '/Nginx-PushStreamModule/{print $2}') PUSH_SSL_CONFIG=/etc/nginx/bx/conf/ssl-push.conf if [[ -n $PUSH_STREAM_SERVER ]]; then PUSH_SSL=Unknown PUSH_KEY=Unknown PUSH_TYPE=Unknown PUSH_SSL_FILE=$PUSH_SSL_CONFIG if [[ ( -f $PUSH_SSL_CONFIG ) && \ ( $(file $PUSH_SSL_CONFIG | grep -c "symbolic link to") -gt 0 ) ]]; then PUSH_SSL_FILE=$(file $PUSH_SSL_CONFIG | grep "symbolic link to" | \ awk '{print $NF}' | sed -e "s/[\`']//g") DIR_PUSH_SSL_FILE=$(dirname $PUSH_SSL_FILE) BN_PUSH_SSL_FILE=$(basename $PUSH_SSL_FILE) [[ $DIR_PUSH_SSL_FILE == "." ]] && DIR_PUSH_SSL_FILE=/etc/nginx/bx/conf PUSH_SSL_FILE="${DIR_PUSH_SSL_FILE}/${BN_PUSH_SSL_FILE}" fi if [[ ${PUSH_SSL_FILE} == '/etc/nginx/bx/conf/ssl.conf' ]]; then PUSH_SSL=/etc/nginx/ssl/cert.pem PUSH_KEY=/etc/nginx/ssl/cert.pem PUSH_TYPE=Default else PUSH_SSL=$(grep -v '^$\|^#' $PUSH_SSL_FILE | \ grep 'ssl_certificate\s\+' | \ awk '{print $2}' | sed -e 's/;$//') PUSH_KEY=$(grep -v '^$\|^#' $PUSH_SSL_FILE | \ grep 'ssl_certificate_key\s\+' | \ awk '{print $2}' | sed -e 's/;$//') PUSH_TYPE=Custom fi print_color_text "Found push-configuration:" blue echo $MENU_SPACER printf "%-15s | %-30s | %s\n" \ "SiteName" "Certificate" "Key" echo $MENU_SPACER printf "%-15s | %-30s | %s\n" \ "push-server" "$PUSH_SSL" "$PUSH_KEY" echo $MENU_SPACER fi fi } # print info about services email information print_site_list_point_email(){ get_all_sites_list if [[ $POOL_SITES_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_COUNT sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %5s | %15s | %5s | %s\n" \ "SiteName" "dbName" "Email" "Server" "TLS" "From" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $POOL_SITES_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':email:' | sed -e 's/^bxSite:email://') # cp.ksh.bx:dbcp:cp.ksh.bx:bob@example.org:192.168.0.25:26:bob@example.org:*************:on _site_email=$(echo "$_site_info" | awk -F':' '{print $4}') _email_serv=$(echo "$_site_info" | awk -F':' '{print $5}') _email_port=$(echo "$_site_info" | awk -F':' '{print $6}') _email_tls=$(echo "$_site_info" | awk -F':' '{print $9}') _email_status=N [[ -n "$_site_email" ]] && _email_status=Y [[ -n "$_email_port" ]] && _email_serv="$_email_serv:$_email_port" printf "%-15s | %-15s | %5s | %15s | %5s | %s\n" \ "$_site_id" "$_site_db" "$_email_status" "$_email_serv" "$_email_tls" "$_site_email" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not sites on the server" blue fi } # print info about services backup print_site_list_point_backup(){ cache_pool_sites if [[ $POOL_SITES_KERNEL_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_KERNEL_COUNT kernel sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %4s | %15s | %18s | %s\n" \ "SiteName" "dbName" "Back" "CronTime" "LastBackup" "BackupDir" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' POOL_SITES_CRON_SERVICES_LIST="" for line in $POOL_SITES_KERNEL_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':backup:' | sed -e 's/^bxSite:backup://') # default:sitemanager0:enable:v5:/home/bitrix/backup/archive:10:23:*:*:* _site_backup=$(echo "$_site_info" | awk -F':' '{print $3}' | \ sed -e 's/enable/Y/;s/disable/N/;') if [[ "$_site_backup" == "Y" ]]; then _backup_dir=$(echo "$_site_info" | awk -F':' '{print $5}') _backup_cron=$(echo "$_site_info" | awk -F':' '{printf "%s:%s:%s:%s:%s",$6,$7,$8,$9,$10}') list_archive=$(find $_backup_dir -name "www_backup_${_site_db}*.tar.gz") _backup_last= if [[ -n "$list_archive" ]]; then last_archive_time=0 for file in $list_archive; do mtime=$(stat -c %Y $file) [[ $mtime -gt $last_archive_time ]] && last_archive_time=$mtime done _backup_last=$(date -d @$last_archive_time +"%d/%m/%Y %H:%M") fi else _backup_dir= _backup_cron= _backup_last= fi printf "%-15s | %-15s | %4s | %15s | %18s | %s\n" \ "$_site_id" "$_site_db" "$_site_backup" "$_backup_cron" "$_backup_last" "$_backup_dir" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not found kernel sites on the server" blue fi } # print info about services xmppd and smtpd print_site_list_point_cronservices(){ cache_pool_sites if [[ $POOL_SITES_KERNEL_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_KERNEL_COUNT kernel sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %10s | %10s | %s\n" \ "SiteName" "dbName" "XMMPD" "SMTPD" "DocumentRoot" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' POOL_SITES_CRON_SERVICES_LIST="" for line in $POOL_SITES_KERNEL_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':cron_services:' | sed -e 's/^bxSite:cron_services://') # ext_www:sitemanager0:enabled:smtpd _site_cron=$(echo "$_site_info" | awk -F':' '{print $3}' | \ sed -e 's/enabled/Y/;s/disabled/N/;') _site_xmmpd=N _site_smtpd=N if [[ "$_site_cron" == "Y" ]]; then [[ $(echo "$_site_info" | awk -F':' '{print $4}' | grep -wc 'xmppd') -gt 0 ]] && \ _site_xmmpd=Y [[ $(echo "$_site_info" | awk -F':' '{print $4}' | grep -wc 'smtpd') -gt 0 ]] && \ _site_smtpd=Y fi printf "%-15s | %-15s | %10s | %10s | %s\n" \ "$_site_id" "$_site_db" "$_site_xmmpd" "$_site_smtpd" "$_site_root" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not found kernel sites on the server" blue fi } # get information about server in domain or not # fill out NTLM_STATUS server_ntlm_status() { skip_print=$1 NTLM_STATUS= # NTLMStatus:not_configured:::::: _ntlm_info=$($bx_sites_script -a ntlm_status) _ntlm_status=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{print $2}') if [[ -z "$skip_print" ]]; then if [[ "$_ntlm_status" == "configured" ]]; then _ntlm_domain=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{print $3}') _ntlm_ldap=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{printf "%s:%s",$4,$5}') _ntlm_realm=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{print $6}') _ntlm_kdc=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{print $7}') _ntlm_offset=$(echo "$_ntlm_info" | grep -w 'NTLMStatus' | awk -F':' '{print $8}') print_color_text "NTLM auth already configured:" green echo $MENU_SPACER printf "%-15s: %s\n" "Domain" "$_ntlm_domain" printf "%-15s: %s\n" "LDAP Server" "$_ntlm_ldap" printf "%-15s: %s\n" "Realm" "$_ntlm_realm" printf "%-15s: %s\n" "KDC" "$_ntlm_kdc" printf "%-15s: %s\n" "TimeOffset" "$_ntlm_offset" echo $MENU_SPACER else print_color_text "NTLM auth does't configured on the server $(hostname)" blue fi fi NTLM_STATUS=$_ntlm_status } # print info about ntlm # NONTLM_SITES - sites that not use NTLM print_site_list_point_ntlm(){ cache_pool_sites NONTLM_SITES= # sites which doesn't use NTLM; enable rewrite for NTLM auth is enable NTLM_SITES= # opposite one if [[ $POOL_SITES_KERNEL_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_KERNEL_COUNT kernel sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %7s | %7s | %8s | %s\n" \ "SiteName" "dbName" "LDAPMod" "UseNTLM" "LDAPAuth" "DocumentRoot" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' POOL_SITES_CRON_SERVICES_LIST="" for line in $POOL_SITES_KERNEL_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep ':ntlm:' | sed -e 's/^bxSite:ntlm://') # default:sitemanager0:N:N:Y # option: bitrixvm_auth_support site_ntlm_bv=$(echo "$_site_info" | awk -F':' '{print $3}') # option: use_ntlm site_ntlm_use=$(echo "$_site_info" | awk -F':' '{print $4}') site_ldap_module=$(echo "$_site_info" | awk -F':' '{print $5}') printf "%-15s | %-15s | %7s | %7s | %8s | %s\n" \ "$_site_id" "$_site_db" "$site_ldap_module" "$site_ntlm_use" "$site_ntlm_bv" "$_site_root" if [[ $site_ntlm_bv == "N" ]]; then NONTLM_SITES=$NONTLM_SITES"$_site_id:$_site_db:$_site_root:$site_ntlm_bv:$site_ntlm_use:$site_ldap_module " else NTLM_SITES=$NTLM_SITES"$_site_id:$_site_db:$_site_root:$site_ntlm_bv:$site_ntlm_use:$site_ldap_module " fi done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not found kernel sites on the server" blue fi } # print info about site options print_site_list_point_options(){ get_all_sites_list if [[ $POOL_SITES_COUNT -gt 0 ]]; then print_color_text "Found $POOL_SITES_COUNT sites:" blue echo $MENU_SPACER printf "%-15s | %-15s | %10s | %20s\n" \ "SiteName" "dbName" "Type" "ignore_client_abort" echo $MENU_SPACER IFS_BAK=$IFS IFS=$'\n' for line in $POOL_SITES_LIST; do # default:sitemanager0:kernel:finished:shop.ksh.bx:/home/bitrix/www:utf-8 _site_id=$(echo "$line" | awk -F':' '{print $1}') # short name for site _site_db=$(echo "$line" | awk -F':' '{print $2}') # dbname _site_type=$(echo "$line" | awk -F':' '{print $3}') # type: kernel, ext_kernel _site_st=$(echo "$line" | awk -F':' '{print $4}') # status site installation _site_root=$(echo "$line" | awk -F':' '{print $6}') # document root _site_info=$($bx_sites_script -a status --site $_site_id -r $_site_root | \ grep 'bxSite:configs:' | sed -e 's/^bxSite:configs://') #default:s1.conf:ssl.s1.conf:/etc/nginx/bx/site_avaliable:/etc/nginx/bx/site_enabled:/etc/httpd/bx/conf/default.conf:/home/bitrix/www:/tmp/php_sessions/www:/tmp/php_upload/www:off _proxy_ignore_client_abort=$(echo "$_site_info" | awk -F':' '{print $10}') printf "%-15s | %-15s | %10s | %20s\n" \ "$_site_id" "$_site_db" "$_site_type" "$_proxy_ignore_client_abort" done IFS_BAK=$IFS IFS=$'\n' echo $MENU_SPACER else print_color_text "Not sites on the server" blue fi } test_directory(){ dir="${1}" if [[ -z "$dir" ]]; then print_message "$CS0101" "$SM0001" "" any_key return 1 fi if [[ ! -d "$dir" ]]; then print_message "$CS0101" \ "$(get_text "$SM0002" "$dir")" "" any_key return 1 fi return 0 } test_sitename(){ name="${1}" exclude="${2}" if [[ -z "$name" ]]; then print_message "$CS0101" "$SM0033" "" any_key return 1 fi if [[ -n $exclude ]]; then get_all_sites_list 3600 $exclude else get_all_sites_list fi [[ $DEBUG -gt 0 ]] && echo "POOL_SITES_LIST=$POOL_SITES_LIST" is_site=$(echo "$POOL_SITES_LIST" | grep -c "^$name:") if [[ $is_site -eq 0 ]]; then print_message "$CS0101" \ "$(get_text "$SM0034" "$name")" \ "" any_key return 1 fi return 0 }