restore-website-from-backup.sh: add time durations for removing/restoring webspace and database.
This commit is contained in:
		| @@ -9,6 +9,12 @@ log_file="$(mktemp)" | |||||||
|  |  | ||||||
| backup_date=$(date +%Y-%m-%d-%H%M) | backup_date=$(date +%Y-%m-%d-%H%M) | ||||||
|  |  | ||||||
|  | # ============= | ||||||
|  | # --- Some Variable | ||||||
|  | # ============= | ||||||
|  |  | ||||||
|  | right_tabstop=75 | ||||||
|  |  | ||||||
|  |  | ||||||
| # ============= | # ============= | ||||||
| # --- Some functions | # --- Some functions | ||||||
| @@ -116,27 +122,27 @@ echononl(){ | |||||||
| } | } | ||||||
| echo_done() { | echo_done() { | ||||||
|    if $terminal ; then |    if $terminal ; then | ||||||
|       echo -e "\033[75G[ \033[32mdone\033[m ]" |       echo -e "\033[${right_tabstop}G[ \033[32mdone\033[m ]" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| echo_ok() { | echo_ok() { | ||||||
|    if $terminal ; then |    if $terminal ; then | ||||||
|       echo -e "\033[75G[ \033[32mok\033[m ]" |       echo -e "\033[${right_tabstop}G[ \033[32mok\033[m ]" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| echo_warning() { | echo_warning() { | ||||||
|    if $terminal ; then |    if $terminal ; then | ||||||
|       echo -e "\033[75G[ \033[33m\033[1mwarn\033[m ]" |       echo -e "\033[${right_tabstop}G[ \033[33m\033[1mwarn\033[m ]" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| echo_failed(){ | echo_failed(){ | ||||||
|    if $terminal ; then |    if $terminal ; then | ||||||
|       echo -e "\033[75G[ \033[1;31mfailed\033[m ]" |       echo -e "\033[${right_tabstop}G[ \033[1;31mfailed\033[m ]" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
| echo_skipped() { | echo_skipped() { | ||||||
|    if $terminal ; then |    if $terminal ; then | ||||||
|       echo -e "\033[75G[ \033[37mskipped\033[m ]" |       echo -e "\033[${right_tabstop}G[ \033[37mskipped\033[m ]" | ||||||
|    fi |    fi | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -181,6 +187,62 @@ info (){ | |||||||
|    fi |    fi | ||||||
| } | } | ||||||
|  |  | ||||||
|  | time_duration () { | ||||||
|  |  | ||||||
|  |    local __begin=$1 | ||||||
|  |    local __end=$2 | ||||||
|  |  | ||||||
|  |    local __duration | ||||||
|  |  | ||||||
|  |    if [[ "$__begin" ]] && [[ "$__end" ]] ; then | ||||||
|  |  | ||||||
|  |       local __duration | ||||||
|  |  | ||||||
|  |       local __time=`expr $__end - $__begin` | ||||||
|  |       local __t_h=`expr $__time / 60 / 60` | ||||||
|  |       local __t_rest_h=`expr $__time - $__t_h \\* 60 \\* 60` | ||||||
|  |       local __t_m=`expr $__t_rest_h / 60` | ||||||
|  |       local __t_s=`expr $__t_rest_h - $__t_m \\* 60` | ||||||
|  |  | ||||||
|  |       if [[ $__t_h -gt 0 ]]; then | ||||||
|  |          if [[ $__t_h -lt 10 ]] ; then | ||||||
|  |             echo " $__t_h h : $__t_m min : $__t_s sec" | ||||||
|  |          else | ||||||
|  |             echo "$__t_h h : $__t_m min : $__t_s sec" | ||||||
|  |          fi | ||||||
|  |       elif [[ $__t_m -gt 0 ]]; then | ||||||
|  |          if [[ $__t_m -lt 10 ]] ; then | ||||||
|  |             echo " $__t_m min : $__t_s sec" | ||||||
|  |          else | ||||||
|  |             echo "$__t_m min : $__t_s sec" | ||||||
|  |          fi | ||||||
|  |       else | ||||||
|  |          if [[ $__t_s -lt 10 ]] ; then | ||||||
|  |             echo " $__t_s sec" | ||||||
|  |          else | ||||||
|  |             echo "$__t_s sec" | ||||||
|  |          fi | ||||||
|  |       fi | ||||||
|  |  | ||||||
|  |    else | ||||||
|  |       echo "N/A" | ||||||
|  |    fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  | } | ||||||
|  | echo_duration () { | ||||||
|  |  | ||||||
|  |    local __time_duration=${1} | ||||||
|  |    local __length=${#__time_duration} | ||||||
|  |  | ||||||
|  |    # print duratuion inside inside square brackets "[ duration ]"  with blank delimiter,  | ||||||
|  |    # so add reduce tabstop by 4 characters | ||||||
|  |    # | ||||||
|  |    __tabstop=`expr ${right_tabstop} - ${__length} - 1 - 4` | ||||||
|  |    echo -en "\033[${__tabstop}G[ \033[33m${__time_duration}\033[m ]" | ||||||
|  |  | ||||||
|  | } | ||||||
|  |  | ||||||
| ## - Check if a given array (parameter 2) contains a given string (parameter 1) | ## - Check if a given array (parameter 2) contains a given string (parameter 1) | ||||||
| ## - | ## - | ||||||
| containsElement () { | containsElement () { | ||||||
| @@ -790,25 +852,63 @@ if $terminal ; then | |||||||
|    echo "" |    echo "" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  |  | ||||||
|  | echononl "   Remove Documentroot Directory if exists .." | ||||||
|  | if [[ -d "${LOCAL_WEBSITE_BASE_DIR}/$(basename "$RESTORE_DIR")" ]] ; then | ||||||
|  |    b_timestamp=$(date +"%s") | ||||||
|  |    rm -rf "${LOCAL_WEBSITE_BASE_DIR}/$(basename "$RESTORE_DIR")" > $log_file 2>&1 | ||||||
|  |    retval=$? | ||||||
|  |    e_timestamp=$(date +"%s") | ||||||
|  |    echo_duration "$(time_duration $b_timestamp $e_timestamp)" | ||||||
|  |    if [[ $retval -eq 0 ]]; then | ||||||
|  |       echo_ok | ||||||
|  |    else | ||||||
|  |       echo_failed | ||||||
|  |       fatal "$(cat $log_file)" | ||||||
|  |    fi | ||||||
|  | else | ||||||
|  |    echo_skipped | ||||||
|  | fi | ||||||
|  |  | ||||||
| echononl "   Restore Database '${DATABASE_NAME}'.." | echononl "   Restore Database '${DATABASE_NAME}'.." | ||||||
|  | b_timestamp=$(date +"%s") | ||||||
| mysql $MYSQL_CREDENTIAL_ARGS $DATABASE_NAME < $SQL_FILE > $log_file 2>&1 | mysql $MYSQL_CREDENTIAL_ARGS $DATABASE_NAME < $SQL_FILE > $log_file 2>&1 | ||||||
| if [[ $? -eq 0 ]]; then | retval=$? | ||||||
|  | e_timestamp=$(date +"%s") | ||||||
|  | echo_duration "$(time_duration $b_timestamp $e_timestamp)" | ||||||
|  | if [[ $retval -eq 0 ]]; then | ||||||
|    echo_ok |    echo_ok | ||||||
| else | else | ||||||
|    echo_failed |    echo_failed | ||||||
|    fatal "$(cat $log_file)" |    fatal "$(cat $log_file)" | ||||||
| fi | fi | ||||||
|  |  | ||||||
| echononl "   Sync Webspace - site '${WEBSITE}' from '${BACKUP_DATE}'.." | echononl "   Sync Webspace - site '${WEBSITE}'.." | ||||||
| rsync -a --delete "$RESTORE_DIR" "${LOCAL_WEBSITE_BASE_DIR}/" > $log_file 2>&1 |  | ||||||
| if [[ $? -eq 0 ]]; then | # Begin timestamp | ||||||
|  | # | ||||||
|  | b_timestamp=$(date +"%s") | ||||||
|  | cp -ral "$RESTORE_DIR" "${LOCAL_WEBSITE_BASE_DIR}/" > $log_file 2>&1 | ||||||
|  | #rsync -a --delete --link-dest="$RESTORE_DIR" "$RESTORE_DIR" "${LOCAL_WEBSITE_BASE_DIR}/" > $log_file 2>&1 | ||||||
|  | retval=$? | ||||||
|  | # End timestamp | ||||||
|  | # | ||||||
|  | e_timestamp=$(date +"%s") | ||||||
|  |  | ||||||
|  | duration=$(time_duration $b_timestamp $e_timestamp) | ||||||
|  | echo_duration "$duration" | ||||||
|  |  | ||||||
|  | if [[ $retval -eq 0 ]]; then | ||||||
|    echo_ok |    echo_ok | ||||||
| else | else | ||||||
|    echo_failed |    echo_failed | ||||||
|    echo -e "\n   rsync -a --delete \"$RESTORE_DIR\" \"${LOCAL_WEBSITE_BASE_DIR}/\"" |    #echo -e "\n   rsync -a --delete \"$RESTORE_DIR\" \"${LOCAL_WEBSITE_BASE_DIR}/\"" | ||||||
|  |    echo -e "\n   cp -ral \"$RESTORE_DIR\" \"${LOCAL_WEBSITE_BASE_DIR}/\"" | ||||||
|    fatal "$(cat $log_file)" |    fatal "$(cat $log_file)" | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | blank_line | ||||||
|  |  | ||||||
| if $IS_NEXTCLOUD ; then | if $IS_NEXTCLOUD ; then | ||||||
|    echononl "   Set maintanance mod on site '${WEBSITE}' to 'off'.." |    echononl "   Set maintanance mod on site '${WEBSITE}' to 'off'.." | ||||||
|    if [[ -f "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}/htdocs/config/config.php" ]] ; then |    if [[ -f "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}/htdocs/config/config.php" ]] ; then | ||||||
| @@ -829,15 +929,21 @@ fi | |||||||
|  |  | ||||||
|  |  | ||||||
| echononl "   Set Permissons on local website directory\n      '${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}'.." | echononl "   Set Permissons on local website directory\n      '${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}'.." | ||||||
| chown "$HTTP_USER":"$HTTP_GROUP" "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}" > $log_file 2>&1 | if [[ -d "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}" ]] ; then | ||||||
| if [[ $? -eq 0 ]]; then |    chown "$HTTP_USER":"$HTTP_GROUP" "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}" > $log_file 2>&1 | ||||||
|  |    if [[ $? -eq 0 ]]; then | ||||||
|       echo_ok |       echo_ok | ||||||
| else |    else | ||||||
|       echo_failed |       echo_failed | ||||||
|       echo -e "\n   chown \"$HTTP_USER\":\"$HTTP_GROUP\" \"${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}\""  |       echo -e "\n   chown \"$HTTP_USER\":\"$HTTP_GROUP\" \"${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}\""  | ||||||
|       error "$(cat $log_file)" |       error "$(cat $log_file)" | ||||||
|  |    fi | ||||||
|  | else | ||||||
|  |    echo_skipped | ||||||
| fi | fi | ||||||
|  |  | ||||||
|  | blank_line | ||||||
|  |  | ||||||
| echononl "   Copy info file 'BACKUP-DATE' to Documentroot.." | echononl "   Copy info file 'BACKUP-DATE' to Documentroot.." | ||||||
| if [[ -d "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}" ]]; then | if [[ -d "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}" ]]; then | ||||||
|    echo "${BACKUP_DATE}" > "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}/BACKUP-DATE" 2> $log_file  |    echo "${BACKUP_DATE}" > "${LOCAL_WEBSITE_BASE_DIR}/${WEBSITE}/BACKUP-DATE" 2> $log_file  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user