%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /opt/webdir/bin/menu/06_site/
Upload File :
Create Path :
Current File : //opt/webdir/bin/menu/06_site/06_backup.sh

#!/bin/bash
# enable backup for site
#set -x
PROGNAME=$(basename $0)
PROGPATH=$(dirname $0)
[[ -z $DEBUG ]] && DEBUG=0

. $PROGPATH/functions.sh || exit 1
logo=$(get_logo)

delete_backup() {
    backup_kernel="${1}"

    bx_backup_disable=$($bx_sites_script -a backup -d "$backup_kernel" --disable)
    if [[ $(echo "$bx_backup_disable" | grep -cw 'error') -gt 0 ]]; then
        message=$(echo "$bx_backup_disable" | grep -w 'message')
        print_color_text "$message" red
        print_message "$CS0101" \
            "$SM0051 $message" \
            "" any_key
    else
        print_message "$CS0101" \
            "$(get_text "$SM0052" "$backup_kernel")" "" any_key
    fi
}

update_backup() {
    backup_kernel=$1

    print_color_text "$(get_text "$SM0053" "$backup_kernel")"
    echo "$SM0054"

    print_message "$SM0205" "" "" backup_period 1
    case $backup_period in
    "0")
        _min=10
        _hour=24
        _day='*'
        _month='*'
        _wday='*'
        until [[ ( $_hour -ge 0 ) && ( $_hour -le 23 ) ]]; do
            print_message "$SM0055" "" "" _hour $_hour
            if [[ ( $_hour -ge 0 ) && ( $_hour -le 23 ) ]]; then
                echo "$(get_text "$SM0056" "$_hour" "$_min")"
            else
                echo "$SM0057" ;
            fi
        done
    ;;
    "1")
        _min=10
        _hour=23
        _day='*'
        _month='*'
        _wday=8
        until [[ ( $_wday -ge 0 ) && ( $_wday -le 7 ) ]]; do
            print_message "$SM0058" "" "" _wday $_wday
            if [[ ( $_wday -ge 0 ) && ( $_wday -le 7 ) ]]; then
                echo "$(get_text "$SM0059" "$_wday")"
            else
                echo "$SM0060" ;
            fi
        done
    ;;
    "2")
        _min=10
        _hour=23
        _day=32
        _month='*'
        _wday='*'
        until [[ ( $_day -ge 1 ) && ( $_day -le 31 ) ]]; do
            print_message "$SM0061" "" "" _day $_day
            if [[ ( $_day -ge 1 ) && ( $_day -le 31 ) ]]; then
                echo "$(get_text "$SM0062" "$_day")"
            else
                echo "$SM0063" ;
            fi
        done
    ;;
    *)
        print_message "$CS0101" "$SM0064" "" any_key
    ;;
    esac

    [[ "$_hour" == '*' ]] && _hour=any
    [[ "$_day" == '*' ]] && _day=any
    [[ "$_month" == '*' ]] && _month=any
    [[ "$_wday" == '*' ]] && _wday=any

    echo "$SM0065 $backup_kernel"

    [[ $DEBUG -gt 0 ]] && \
        echo "$bx_sites_script -a backup -d $backup_kernel \\
            --enable --minute=$_min --hour=$_hour --day=$_day \\
            --month=$_month --weekday=$_wday" 

    bx_backup_create=$($bx_sites_script -a backup -d $backup_kernel --enable \
        --minute=$_min --hour=$_hour --day=$_day --month=$_month --weekday=$_wday)
  
    if [[ $(echo "$bx_backup_create" | grep -cw 'error') -gt 0 ]]; then
        message=$(echo "$bx_backup_create" | grep -w 'message')
        print_color_text "$message" red
        print_message "$CS0101" \
            "$SM0019 - $message" \
            "" any_key
    else
        print_message "$CS0101" \
            "$SM0066 $backup_kernel" "" any_key
    fi
}

manage_backup() {
    site_name=$1

    test_sitename "$site_name" "link" || exit
 
    # ext_share:dbcp:ext_kernel:finished::/home/bitrix/share:utf-8
    site_dir=$(echo "$POOL_SITES_LIST" | grep "^$site_name:" | awk -F':' '{print $6}')
    [[ $DEBUG -gt 0 ]] && echo "site=$site_name dir=$site_dir"

    get_site_info $site_name $site_dir "backup"
    [[ $DEBUG -gt 0 ]] && echo "data=$site_info_dat"
    # backup:ext_share:dbcp:disable:::::::
    # backup:default:sitemanager0:enable:v5:/home/bitrix/backup/archive:10:23:*:*:* 
    backup_status=$(echo "$site_info_dat" | awk -F':' '{print $4}')
    backup_kernel=$(echo "$site_info_dat" | awk -F':' '{print $3}')
    [[ $DEBUG -gt 0 ]] && echo "db=$backup_kernel status=$backup_status"

    print_color_text "$(get_text "$SM0067" "${backup_status}d" "$backup_kernel")" blue
    if [[ "$backup_status" == "enable" ]]; then
        print_message "$SM0068" "" "" backup_answer 'n'
        if [[ $(echo "$backup_answer" | grep -wci 'y') -gt 0 ]]; then 
            print_message "$SM0069" "" "" backup_answer_update 'y'
            if [[ $(echo "$backup_answer_update" | grep -wci 'y') -gt 0 ]]; then
                update_backup $backup_kernel
            else
                print_message "$SM0070" "" "" backup_answer_disable 'n'
                if [[ $(echo "$backup_answer_disable" | grep -wci 'y') -gt 0 ]]; then
                    delete_backup $backup_kernel
                fi
            fi
        fi
    else
        print_message "$SM0069" "" "" backup_answer_update 'y'
        if [[ $(echo "$backup_answer_update" | grep -wci 'y') -gt 0 ]]; then
            update_backup $backup_kernel
        fi
    fi
}

# print host menu
menu_backup() {
    _menu_backup_00="$SM0201"
    _menu_backup_01="   $SM0071"


    SITE_MENU_SELECT=
    until [[ -n "$SITE_MENU_SELECT" ]]; do
        menu_logo="$SM0071"
        print_menu_header


        # menu
        print_site_list_point_backup
        get_task_by_type site POOL_SITE_TASK_LOCK POOL_SITE_TASK_INFO
        print_task_by_type site "$POOL_SITE_TASK_LOCK" "$POOL_SITE_TASK_INFO"
        if [[ $POOL_SITE_TASK_LOCK -eq 1 ]]; then
            menu_list="\n\t$_menu_backup_00"
        else
            menu_list="\n\t$_menu_backup_01\n\t$_menu_backup_00"
        fi
        print_menu

        if [[ $POOL_SITE_TASK_LOCK -eq 1 ]]; then
            print_message "$SM0202" '' '' SITE_MENU_SELECT 0
        else
            print_message "$SM0207" '' '' SITE_MENU_SELECT "default"
        fi

        # process selection
        case "$SITE_MENU_SELECT" in
            "0") exit ;;
            *)   manage_backup "$SITE_MENU_SELECT";;
        esac
        
        SITE_MENU_SELECT=
    done
}

menu_backup


Zerion Mini Shell 1.0