1174 lines
31 KiB
Bash
Executable File
1174 lines
31 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
CUR_IFS="$IFS"
|
|
|
|
script_name="$(basename $(realpath $0))"
|
|
working_dir="$(dirname $(realpath $0))"
|
|
|
|
conf_file="${working_dir}/conf/${script_name%%.*}.conf"
|
|
|
|
log_file="$(mktemp)"
|
|
|
|
backup_date=$(date +%Y-%m-%d-%H%M)
|
|
|
|
# =============
|
|
# --- Some Variable
|
|
# =============
|
|
|
|
# - Give your default values here
|
|
# -
|
|
|
|
right_tabstop=75
|
|
|
|
DATABASE_SERVER=""
|
|
DATABASE_SERVER_NEEDED=true
|
|
|
|
DATABASE_NAME=""
|
|
DATABASE_NAME_NEEDED=true
|
|
|
|
DATABASE_CREDENTIALS_ARGS=""
|
|
_DATABASE_CREDENTIALS_ARGS=""
|
|
DATABASE_CREDENTIALS_NEEDED=true
|
|
|
|
DATABASE_DUMP_FOLDER=""
|
|
_DATABASE_DUMP_FOLDER="/tmp"
|
|
DATABASE_DUMP_FOLDER_NEEDED=true
|
|
|
|
MYSQLDUMP_FLAGS="--protocol=SOCKET --skip-opt --add-drop-table --add-locks --create-options --quick --compress --set-charset --disable-keys --lock-tables --routines"
|
|
|
|
BATCH_MODE=false
|
|
QUIET_MODE=false
|
|
NON_INTERACTIVE_MODE=false
|
|
|
|
|
|
# =============
|
|
# --- Some functions
|
|
# =============
|
|
|
|
usage() {
|
|
|
|
|
|
[[ -n "$1" ]] && error "$1"
|
|
|
|
|
|
[[ $terminal ]] && echo -e "
|
|
\033[1mUsage:\033[m
|
|
|
|
$(basename $0) [OPTION [OPTION ..
|
|
|
|
|
|
\033[1mDescription\033[m
|
|
|
|
Script dunps a given database to a dump file.
|
|
|
|
|
|
\033[1mNotice\033[m
|
|
|
|
This script was created to dump large databases. For better performance, some global
|
|
variables will be changed during dumping the database.
|
|
|
|
|
|
\033[1mOptions\033[m
|
|
|
|
-b
|
|
Sets batch mode to true - no interaction will be made.
|
|
|
|
-c <database credentials>
|
|
A string containing credentials to establish a database connection. This character string
|
|
can consist of username and password, but also of login information stored in the file system
|
|
or the database itself.
|
|
|
|
Example:
|
|
|
|
-c "u root -p '<password>'"
|
|
-c "--login-path=local"
|
|
-c "--login-path=mysql-5.7"
|
|
-c "--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
|
-c "-u root -S /run/mysqld/mysqld.sock"
|
|
|
|
If this Parameter is omitted, the script tries to detect the right credentials.
|
|
|
|
|
|
-d <db-name>
|
|
The name of the database to dump.
|
|
|
|
-f <Folder-where-dunpfile-will-be-saved>
|
|
Full qualified Folder Name to the folder where the dump file will be saved.
|
|
|
|
-h
|
|
Prints this help.
|
|
|
|
|
|
-s <db-server>
|
|
The database server from which to dump the database. It is possible to enter an IP address or a host name.
|
|
|
|
|
|
\033[1mFiles\033[m
|
|
|
|
Configuration file: $conf_file
|
|
|
|
|
|
\033[1mExample:\033[m
|
|
|
|
Dump database 'cloud_irights' to folder root.
|
|
Run in batch mode.
|
|
|
|
\033[1m$(basename $0) -b -d cloud_irights -f "/root" -c "-u root -S /run/mysqld/mysqld.sock"\033[m
|
|
|
|
"
|
|
|
|
clean_up 1
|
|
|
|
}
|
|
|
|
clean_up() {
|
|
|
|
|
|
if [[ -f "$_backup_crontab_file" ]]; then
|
|
|
|
blank_line
|
|
#echononl " (Re)Install Crontab from previously saved crontab file '$_backup_crontab_file'.."
|
|
echononl " (Re)Install Crontab from previously saved crontab file ..."
|
|
|
|
crontab $_backup_crontab_file >> $log_file 2>&1
|
|
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
|
|
fi
|
|
|
|
if [[ -n "$CUR_AUTOCOMMIT" ]] ; then
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_AUTOCOMMIT'" > /dev/null 2>&1
|
|
fi
|
|
if [[ -n "$CUR_FOREIGN_KEY_CHECKS" ]] ; then
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_FOREIGN_KEY_CHECKS'" > /dev/null 2>&1
|
|
fi
|
|
if [[ -n "$CUR_UNIQUE_CHECKS" ]] ; then
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_UNIQUE_CHECKS'" > /dev/null 2>&1
|
|
fi
|
|
if [[ -n "$CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" ]] ; then
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT'" > /dev/null 2>&1
|
|
fi
|
|
|
|
# Perform program exit housekeeping
|
|
rm -f $log_file
|
|
blank_line
|
|
exit $1
|
|
}
|
|
|
|
is_number() {
|
|
|
|
return $(test ! -z "${1##*[!0-9]*}" > /dev/null 2>&1);
|
|
|
|
# - also possible
|
|
# -
|
|
#[[ ! -z "${1##*[!0-9]*}" ]] && return 0 || return 1
|
|
#return $([[ ! -z "${1##*[!0-9]*}" ]])
|
|
}
|
|
|
|
echononl(){
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo X\\c > /tmp/shprompt$$
|
|
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
|
|
echo -e -n "$*\\c" 1>&2
|
|
else
|
|
echo -e -n "$*" 1>&2
|
|
fi
|
|
rm /tmp/shprompt$$
|
|
fi
|
|
}
|
|
echo_done() {
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo -e "\033[${right_tabstop}G[ \033[32mdone\033[m ]"
|
|
fi
|
|
}
|
|
echo_ok() {
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo -e "\033[${right_tabstop}G[ \033[32mok\033[m ]"
|
|
fi
|
|
}
|
|
echo_warning() {
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo -e "\033[${right_tabstop}G[ \033[33m\033[1mwarn\033[m ]"
|
|
fi
|
|
}
|
|
echo_failed(){
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo -e "\033[${right_tabstop}G[ \033[1;31mfailed\033[m ]"
|
|
fi
|
|
}
|
|
echo_skipped() {
|
|
if $terminal && ! $QUIET_MODE; then
|
|
echo -e "\033[${right_tabstop}G[ \033[37mskipped\033[m ]"
|
|
fi
|
|
}
|
|
|
|
fatal (){
|
|
blank_line
|
|
if $terminal ; then
|
|
echo -e "\t[ \033[31m\033[1mFatal\033[m ]: \033[37m\033[1m$*\033[m"
|
|
echo ""
|
|
echo -e "\t\033[31m\033[1m Script will be interrupted..\033[m\033[m"
|
|
else
|
|
echo "fatal: $*"
|
|
echo "Script will be interrupted.."
|
|
fi
|
|
clean_up 1
|
|
}
|
|
|
|
error(){
|
|
blank_line
|
|
if $terminal ; then
|
|
echo -e "\t[ \033[31m\033[1mFehler\033[m ]: $*"
|
|
else
|
|
echo "Error: $*"
|
|
fi
|
|
blank_line
|
|
}
|
|
|
|
warn (){
|
|
blank_line
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo -e "\t[ \033[33m\033[1mWarning\033[m ]: $*"
|
|
else
|
|
echo "Warning: $*"
|
|
fi
|
|
blank_line
|
|
}
|
|
|
|
info (){
|
|
if $terminal && ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo -e "\t[ \033[32m\033[1mInfo\033[m ]: $*"
|
|
echo ""
|
|
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
|
|
__t_h=" $__t_h"
|
|
fi
|
|
if [[ $__t_m -lt 10 ]] ; then
|
|
__t_m=" $__t_m"
|
|
fi
|
|
if [[ $__t_s -lt 10 ]] ; then
|
|
__t_s=" $__t_s"
|
|
fi
|
|
|
|
echo "$__t_h h : $__t_m min : $__t_s sec"
|
|
|
|
elif [[ $__t_m -gt 0 ]]; then
|
|
|
|
if [[ $__t_m -lt 10 ]] ; then
|
|
__t_m=" $__t_m"
|
|
fi
|
|
if [[ $__t_s -lt 10 ]] ; then
|
|
__t_s=" $__t_s"
|
|
fi
|
|
|
|
echo "$__t_m min : $__t_s sec"
|
|
|
|
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 ]"
|
|
|
|
}
|
|
|
|
detect_mysql_version () {
|
|
|
|
_MYSQLD_VERSION="$(mysqld -V 2>/dev/null)"
|
|
|
|
if [[ -z "$_MYSQLD_VERSION" ]]; then
|
|
fatal "No installed MySQL server or distribution found!"
|
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ percona- ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="Percona"
|
|
elif [[ "$_MYSQLD_VERSION" =~ MariaDB ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="MariaDB"
|
|
elif [[ "$_MYSQLD_VERSION" =~ MySQL ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="MySQL"
|
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mysql- ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="MySQL"
|
|
elif [[ -d "/usr/local/mysql" ]] && [[ "$(basename "$(realpath "/usr/local/mysql")")" =~ mariadb- ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="MariaDB"
|
|
else
|
|
|
|
if $BATCH_MODE ; then
|
|
fatal "No MySQL Instalation on this Server found!"
|
|
fi
|
|
|
|
error "MySQL Instalation found, but cannot determin the distribution!"
|
|
|
|
MYSQL_CUR_DISTRIBUTION=
|
|
echo ""
|
|
echo " Select the MySQL distribution to install."
|
|
echo ""
|
|
echo " [1] MySQL (the original community edition)"
|
|
echo " [2] Percona Server for MySQL"
|
|
echo " [3] MariaDB"
|
|
echo ""
|
|
echononl " Eingabe [1/2/3]: "
|
|
|
|
while [ "$MYSQL_CUR_DISTRIBUTION" != "MySQL" -a "$MYSQL_CUR_DISTRIBUTION" != "MariaDB" -a "$MYSQL_CUR_DISTRIBUTION" != "Percona" ];do
|
|
read OPTION
|
|
case $OPTION in
|
|
1) MYSQL_CUR_DISTRIBUTION="MySQL"
|
|
;;
|
|
2) MYSQL_CUR_DISTRIBUTION="Percona"
|
|
;;
|
|
3) MYSQL_CUR_DISTRIBUTION="MariaDB"
|
|
;;
|
|
*) echo ""
|
|
echo -e "\tFalsche Eingabe ! [ 1 = MySQL ; 2 = Percona ; 3 = MariaDB ]"
|
|
echo ""
|
|
echononl " Eingabe:"
|
|
;;
|
|
esac
|
|
done
|
|
fi
|
|
|
|
MYSQL_VERSION="$(echo $_MYSQLD_VERSION | grep -o -E "[0-9]+\.[0-9]+\.[0-9]+(-[0-9]+)?" | head -n 1)"
|
|
MYSQL_MAJOR_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f1)"
|
|
MYSQL_MINOR_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f2)"
|
|
MYSQL_PATCH_LEVEL="$(echo $MYSQL_VERSION | cut -d '.' -f3)"
|
|
MYSQL_MAIN_VERSION="$(echo $MYSQL_VERSION | cut -d '.' -f1,2)"
|
|
|
|
}
|
|
|
|
# Check if systemd service exists
|
|
#
|
|
service_exists() {
|
|
local n=$1
|
|
if [[ $(systemctl list-units --all -t service --full --no-legend "$n.service" | sed 's/^\s*//g' | cut -f1 -d' ') == $n.service ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Check if a given array (parameter 2) contains a given string (parameter 1)
|
|
#
|
|
containsElement () {
|
|
local e
|
|
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
|
|
return 1
|
|
}
|
|
|
|
trim() {
|
|
local var="$*"
|
|
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
|
var="${var%"${var##*[![:space:]]}"}" # remove trailing whitespace characters
|
|
echo -n "$var"
|
|
}
|
|
|
|
blank_line() {
|
|
if $terminal ; then
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
|
|
|
|
# ----------
|
|
# - Jobhandling
|
|
# ----------
|
|
|
|
# - Run 'clean_up' for signals SIGHUP SIGINT SIGTERM
|
|
# -
|
|
trap clean_up SIGHUP SIGINT SIGTERM
|
|
|
|
|
|
|
|
# =============
|
|
# --- Some
|
|
# =============
|
|
|
|
# - Support systemd ?
|
|
# -
|
|
if [[ "X$(which systemd)" = "X" ]]; then
|
|
SYSTEMD_EXISTS=false
|
|
else
|
|
SYSTEMD_EXISTS=true
|
|
fi
|
|
|
|
# - Running in a terminal?
|
|
# -
|
|
if [[ -t 1 ]] ; then
|
|
terminal=true
|
|
clear
|
|
else
|
|
terminal=false
|
|
QUIET_MODE=true
|
|
NON_INTERACTIVE_MODE=true
|
|
fi
|
|
|
|
echononl " Get MySQL command.."
|
|
mysql_command="$(which mysql)"
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
|
|
if [[ -x "/usr/local/mysql/bin/mysql" ]]; then
|
|
mysql_command="/usr/local/mysql/bin/mysql"
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $tmp_log_file)"
|
|
fi
|
|
fi
|
|
|
|
echononl " Get DUMP command.."
|
|
mysqldump_command="$(which mysqldump)"
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
|
|
if [[ -x "/usr/local/mysql/bin/mysqldump" ]]; then
|
|
mysqldump_command="/usr/local/mysql/bin/mysqldump"
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $tmp_log_file)"
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# ----------
|
|
# Read Configurations from $conf_file
|
|
# ----------
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
fi
|
|
echononl " Loading configuration settings from $(basename ${conf_file}).."
|
|
if [[ -f "$conf_file" ]]; then
|
|
source "$conf_file" > $log_file 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_done
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
warn "No Configuration File found. Loading defaults.."
|
|
fi
|
|
|
|
|
|
# ----------
|
|
# - Read commandline parameter
|
|
# ----------
|
|
|
|
echononl " Read Commandline Parameter.."
|
|
while getopts bd:f:hs: opt ; do
|
|
case $opt in
|
|
b) BATCH_MODE=true
|
|
NON_INTERACTIVE_MODE=true
|
|
;;
|
|
c) DATABASE_CREDENTIALS_ARGS="$OPTARG"
|
|
;;
|
|
d) DATABASE_NAME="$OPTARG"
|
|
;;
|
|
f) DATABASE_DUMP_FOLDER="$OPTARG"
|
|
;;
|
|
h) usage
|
|
;;
|
|
s) DATABASE_SERVER="$OPTARG"
|
|
;;
|
|
\?) usage ;;
|
|
esac
|
|
done
|
|
echo_done
|
|
|
|
[[ -n "$DATABASE_CREDENTIALS_ARGS" ]] && DATABASE_CREDENTIALS_NEEDED=false
|
|
[[ -n "$DATABASE_SERVER" ]] && DATABASE_SERVER_NEEDED=false
|
|
if [[ -n "$DATABASE_NAME" ]]; then
|
|
DATABASE_NAME_NEEDED=false
|
|
DATABASE_DUMP_FILE="${DATABASE_NAME}-${backup_date}.sql"
|
|
fi
|
|
[[ -n "$DATABASE_DUMP_FOLDER" ]] && DATABASE_DUMP_FOLDER_NEEDED=false
|
|
|
|
|
|
if $BATCH_MODE ; then
|
|
|
|
if [[ -z "$DATABASE_DUMP_FOLDER" ]] ; then
|
|
DATABASE_DUMP_FOLDER=/tmp
|
|
warn "Set Dump directory to folder \033[1m/tmp\033[m"
|
|
elif [[ ! -d "$DATABASE_DUMP_FOLDER" ]] ; then
|
|
fatal "\033[mDump Folder '\033[1m${DATABASE_DUMP_FOLDER}\033[m' not found!"
|
|
fi
|
|
|
|
if [[ -z "$DATABASE_NAME" ]] ; then
|
|
fatal "No Database given \033[m(Option -d)\033[1m!"
|
|
fi
|
|
|
|
# if [[ -z "$DATABASE_CREDENTIALS_ARGS" ]] && [[ -z "$DATABASE_SERVER" ]]; then
|
|
#
|
|
# # Try to detect local MySQL Installation
|
|
# #
|
|
# detect_mysql_version
|
|
#
|
|
# MAJOR_VERSION="$MYSQL_MAJOR_VERSION"
|
|
# MINOR_VERSION="$MYSQL_MINOR_VERSION"
|
|
# PATCH_LEVEL="$MYSQL_PATCH_LEVEL"
|
|
#
|
|
# if [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] && ([[ $MAJOR_VERSION -gt 10 ]] \
|
|
# || ( [[ $MAJOR_VERSION -eq 10 ]] && [[ $MINOR_VERSION -gt 3 ]] )) ; then
|
|
# if [[ -S "/tmp/mysql.sock" ]]; then
|
|
# DATABASE_CREDENTIALS_ARGS="-u root -S /tmp/mysql.sock"
|
|
# elif [[ -S "/run/mysqld/mysqld.sock" ]]; then
|
|
# DATABASE_CREDENTIALS_ARGS="-u root -S /run/mysqld/mysqld.sock"
|
|
# elif [[ -S "/var/run/mysqld/mysqld.sock" ]]; then
|
|
# DATABASE_CREDENTIALS_ARGS="-u root -S /var/run/mysqld/mysqld.sock"
|
|
# else
|
|
# fatal "Parameter 'DATABASE_CREDENTIALS_ARGS' cannot be determined automated.
|
|
#
|
|
# Use configuration file "$conf_file" or commandline Parameter or set
|
|
# thr mysql credentials."
|
|
# fi
|
|
# else
|
|
# if $(${mysql_command} --login-path=local -e ";" > /dev/null 2>&1) ; then
|
|
# DATABASE_CREDENTIALS_ARGS="--login-path=local"
|
|
# elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then
|
|
# DATABASE_CREDENTIALS_ARGS="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
|
# elif [[ -f "/etc/mysql/debian.cnf" ]] ; then
|
|
# DATABASE_CREDENTIALS_ARGS="--defaults-file=/etc/mysql/debian.cnf"
|
|
# else
|
|
# fatal "Parameter 'DATABASE_CREDENTIALS_ARGS' cannot be determined automated.
|
|
#
|
|
# Use configuration file "$conf_file" to set
|
|
# parameter manually."
|
|
# fi
|
|
# fi
|
|
# fi
|
|
|
|
if [[ -z "$DATABASE_CREDENTIALS_ARGS" ]] && [[ -n "$DATABASE_SERVER" ]]; then
|
|
fatal "Cannot detect database credentials on remote machines. You have to set Parameter '-c'"
|
|
fi
|
|
|
|
else
|
|
|
|
if $DATABASE_SERVER ; then
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert Database Server from which should dump should be created.."
|
|
echo ""
|
|
echo ""
|
|
echo -e " \033[33mType <Return> to accept the default (localhost).\033[m"
|
|
echo ""
|
|
echononl "Database Server [localhost]: "
|
|
read DATABASE_SERVER
|
|
if [[ "X$DATABASE_SERVER" = "X" ]] \
|
|
|| [[ "$DATABASE_SERVER" = 'localhost' ]] \
|
|
|| [[ "$DATABASE_SERVER" =~ ^127\. ]]; then
|
|
DATABASE_SERVER=""
|
|
fi
|
|
fi
|
|
|
|
if $DATABASE_NAME_NEEDED ; then
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert Database name which should be created.."
|
|
echo ""
|
|
echo ""
|
|
echononl "Database name: "
|
|
read DATABASE_NAME
|
|
while [ "X$DATABASE_NAME" = "X" ] ; do
|
|
echo -e "\n\t\033[33m\033[1mEingabe erforderlich.\033[m\n"
|
|
echononl "Database name: "
|
|
read DATABASE_NAME
|
|
done
|
|
DATABASE_DUMP_FILE="${DATABASE_NAME}-${backup_date}.sql"
|
|
fi
|
|
|
|
if $DATABASE_CREDENTIALS_NEEDED ; then
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Insert Database Credentials.."
|
|
echo ""
|
|
|
|
echo -e "A string containing credentials to establish a database connection. This character string
|
|
can consist of username and password, but also of login information stored in the file system
|
|
or the database itself.
|
|
|
|
Example:
|
|
|
|
\033[33m-u root -p'<password>'\033[m
|
|
\033[33m--login-path=local\033[m
|
|
\033[33m--login-path=mysql-5.7\033[m
|
|
\033[33m--defaults-file=/usr/local/mysql/sys-maint.cnf\033[m
|
|
\033[33m-u root -S /run/mysqld/mysqld.sock\033[m"
|
|
echo ""
|
|
|
|
if [[ -n "$_DATABASE_CREDENTIALS_ARGS" ]] ; then
|
|
|
|
echo -e " Type <Return> to accept the default (${_DATABASE_CREDENTIALS_ARGS})."
|
|
echo ""
|
|
|
|
echononl "Database Credentials [\033[1m$_DATABASE_CREDENTIALS_ARGS\033[m]: "
|
|
read DATABASE_CREDENTIALS_ARGS
|
|
if [[ "X${DATABASE_CREDENTIALS_ARGS}" = "X" ]]; then
|
|
DATABASE_CREDENTIALS_ARGS="${_DATABASE_CREDENTIALS_ARGS}"
|
|
fi
|
|
|
|
else
|
|
|
|
echononl "Database Credentials: "
|
|
read DATABASE_CREDENTIALS_ARGS
|
|
while [ "X$DATABASE_CREDENTIALS_ARGS" = "X" ] ; do
|
|
echo -e "\n\t\033[33m\033[1mEingabe erforderlich.\033[m\n"
|
|
echononl "Database Credentials: "
|
|
read DATABASE_CREDENTIALS_ARGS
|
|
done
|
|
|
|
fi # if [[ -n "$_DATABASE_CREDENTIALS_ARGS" ]]
|
|
|
|
fi # if $DATABASE_CREDENTIALS_NEEDED ; then
|
|
|
|
if $DATABASE_DUMP_FOLDER_NEEDED ; then
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echo "Give folder, where to save thr database dump file."
|
|
echo ""
|
|
echo ""
|
|
while [ "X$DATABASE_DUMP_FOLDER" = "X" ] ; do
|
|
|
|
echononl "Folder to save MySQL Dump File [\033[1m${_DATABASE_DUMP_FOLDER}\033[m]: "
|
|
read DATABASE_DUMP_FOLDER
|
|
|
|
if [[ "X$DATABASE_DUMP_FOLDER" = "X" ]] ; then
|
|
DATABASE_DUMP_FOLDER=${_DATABASE_DUMP_FOLDER}
|
|
fi
|
|
|
|
if [[ ! -d "$DATABASE_DUMP_FOLDER" ]] ; then
|
|
echo -e "\n\t\033[33m\033[1mFolder '${DATABASE_DUMP_FOLDER}' not found!.\033[m\n"
|
|
DATABASE_DUMP_FOLDER=""
|
|
fi
|
|
done
|
|
:
|
|
fi
|
|
|
|
fi # if $BATCH_MODE ; then
|
|
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echononl "Check connection to Database Server.."
|
|
if [[ -n "$DATABASE_SERVER" ]] ; then
|
|
if ! $(${mysql_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS -e ";" > /dev/null 2> $log_file) ; then
|
|
if [[ "$(cat $log_file)" =~ "unknown variable 'login-path" ]] ; then
|
|
if [[ -x "/usr/local/mysql/bin/mysql" ]] ; then
|
|
mysql_command="/usr/local/mysql/bin/mysql"
|
|
mysqldump_command="/usr/local/mysql/bin/mysqldump"
|
|
else
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
else
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
fi
|
|
else
|
|
if ! $(${mysql_command} $DATABASE_CREDENTIALS_ARGS -e ";" > /dev/null 2> $log_file) ; then
|
|
if [[ "$(cat $log_file)" =~ "unknown variable 'login-path" ]] ; then
|
|
if [[ -x "/usr/local/mysql/bin/mysql" ]] ; then
|
|
mysql_command="/usr/local/mysql/bin/mysql"
|
|
mysqldump_command="/usr/local/mysql/bin/mysqldump"
|
|
else
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
else
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
if [[ -n "$DATABASE_CREDENTIALS_ARGS" ]] ; then
|
|
|
|
# - Get MySQL Version
|
|
# -
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
echononl "Get MySQL Version"
|
|
_version="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SELECT VERSION()" 2> $log_file)"
|
|
if [[ $? -ne 0 ]] ; then
|
|
echo_failed
|
|
fatal "$(cat $log_file)"
|
|
else
|
|
echo_ok
|
|
fi
|
|
|
|
echo ""
|
|
echo "_version: $_version"
|
|
echo ""
|
|
echo ""
|
|
echo ""
|
|
|
|
IFS='.' read -r -a version_arr <<< "$_version"
|
|
declare -i MAJOR_VERSION="${version_arr[0]}"
|
|
declare -i MINOR_VERSION="${version_arr[1]}"
|
|
_path_level="${version_arr[2]}"
|
|
declare -i PATCH_LEVEL="${_path_level%%-*}"
|
|
|
|
## - Get current MySQL Distribution
|
|
## -
|
|
echononl " Get current MySQL distribution .."
|
|
if [[ -z "$_version" ]]; then
|
|
echo_failed
|
|
fatal "No installed MySQL server or distribution found!"
|
|
elif [[ "$_version" =~ MariaDB ]]; then
|
|
MYSQL_CUR_DISTRIBUTION="MariaDB"
|
|
else
|
|
MYSQL_CUR_DISTRIBUTION="MySQL"
|
|
fi
|
|
echo_ok
|
|
echo ""
|
|
echo -e "\033[32m--\033[m"
|
|
echo ""
|
|
|
|
else
|
|
# Try to detect local MySQL Installation
|
|
#
|
|
detect_mysql_version
|
|
|
|
MAJOR_VERSION="$MYSQL_MAJOR_VERSION"
|
|
MINOR_VERSION="$MYSQL_MINOR_VERSION"
|
|
PATCH_LEVEL="$MYSQL_PATCH_LEVEL"
|
|
|
|
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] && ([[ $MAJOR_VERSION -gt 10 ]] \
|
|
|| ( [[ $MAJOR_VERSION -eq 10 ]] && [[ $MINOR_VERSION -gt 3 ]] )) ; then
|
|
if [[ -S "/tmp/mysql.sock" ]]; then
|
|
DATABASE_CREDENTIALS_ARGS="-u root -S /tmp/mysql.sock"
|
|
elif [[ -S "/run/mysqld/mysqld.sock" ]]; then
|
|
DATABASE_CREDENTIALS_ARGS="-u root -S /run/mysqld/mysqld.sock"
|
|
elif [[ -S "/var/run/mysqld/mysqld.sock" ]]; then
|
|
DATABASE_CREDENTIALS_ARGS="-u root -S /var/run/mysqld/mysqld.sock"
|
|
else
|
|
fatal "Parameter 'DATABASE_CREDENTIALS_ARGS' cannot be determined automated.
|
|
|
|
Use configuration file "$conf_file" or commandline Parameter or set
|
|
thr mysql credentials."
|
|
fi
|
|
else
|
|
if $(${mysql_command} --login-path=local -e ";" > /dev/null 2>&1) ; then
|
|
DATABASE_CREDENTIALS_ARGS="--login-path=local"
|
|
elif [[ -f "/usr/local/mysql/sys-maint.cnf" ]] ; then
|
|
DATABASE_CREDENTIALS_ARGS="--defaults-file=/usr/local/mysql/sys-maint.cnf"
|
|
elif [[ -f "/etc/mysql/debian.cnf" ]] ; then
|
|
DATABASE_CREDENTIALS_ARGS="--defaults-file=/etc/mysql/debian.cnf"
|
|
else
|
|
fatal "Parameter 'DATABASE_CREDENTIALS_ARGS' cannot be determined automated.
|
|
|
|
Use configuration file "$conf_file" to set
|
|
parameter manually."
|
|
fi
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[32m\033[1m====================\033[m"
|
|
echo "Dump MySQL Database settings"
|
|
echo -e "\033[32m\033[1m====================\033[m"
|
|
echo ""
|
|
echo " MySQL Distribution...........: $MYSQL_CUR_DISTRIBUTION"
|
|
if [[ "$MYSQL_CUR_DISTRIBUTION" = "MariaDB" ]] ; then
|
|
echo " MariaDB Version..............: ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_LEVEL}"
|
|
else
|
|
echo " MySQL Version................: ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_LEVEL}"
|
|
fi
|
|
echo ""
|
|
echo " MySQL Command................: ${mysql_command}"
|
|
echo " DUMP Commande................: ${mysqldump_command}"
|
|
echo ""
|
|
if [[ -n "$DATABASE_SERVER" ]] ; then
|
|
echo " Database server..............: $DATABASE_SERVER"
|
|
else
|
|
echo " Database server..............: localhost"
|
|
fi
|
|
echo " Database name................: $DATABASE_NAME"
|
|
echo ""
|
|
echo " MySQL Credentials............: $DATABASE_CREDENTIALS_ARGS"
|
|
echo ""
|
|
echo " MySQL Dump flags.............: $MYSQLDUMP_FLAGS"
|
|
echo ""
|
|
echo " Folder containing dump file..: $DATABASE_DUMP_FOLDER"
|
|
echo " Database Dump File...........: ${DATABASE_DUMP_FILE}"
|
|
echo ""
|
|
echo ""
|
|
echo ""
|
|
fi
|
|
|
|
if ! $NON_INTERACTIVE_MODE ; then
|
|
echo -e -n "\033[1mContinue restoring database with above settings? [y/n]:\033[m "
|
|
read OK
|
|
while [[ "X${OK}X" = "XX" ]] ; do
|
|
echo ""
|
|
echo -e -n "\033[1mContinue with above settings? [y/n]:\033[m "
|
|
read OK
|
|
done
|
|
|
|
if [[ "${OK,,}" != 'yes' ]] && [[ "${OK,,}" != 'y' ]]; then
|
|
fatal "Abort by user request."
|
|
fi
|
|
fi
|
|
|
|
|
|
|
|
# -----
|
|
# - Doing some checks
|
|
# -----
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[37m\033[1mDoing some checks..\033[m"
|
|
echo ""
|
|
fi
|
|
|
|
|
|
echononl " Check connection to Database Server.."
|
|
if [[ -n "$DATABASE_SERVER" ]] ; then
|
|
if ! $(${mysql_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS -e ";" > /dev/null 2>&1) ; then
|
|
fatal "Cannot connect to Database Server '$DATABASE_SERVER'!"
|
|
fi
|
|
else
|
|
if ! $(${mysql_command} $DATABASE_CREDENTIALS_ARGS -e ";" > /dev/null 2>&1) ; then
|
|
fatal "Cannot connect to Database Server!"
|
|
fi
|
|
fi
|
|
echo_done
|
|
|
|
echononl " Check connection to Database '$DATABASE_NAME'.."
|
|
if [[ -n "$DATABASE_SERVER" ]] ; then
|
|
if ! $(${mysql_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME -e ";" > /dev/null 2>&1) ; then
|
|
fatal "Cannot connect to Database '$DATABASE_NAME'!"
|
|
fi
|
|
else
|
|
if ! $(${mysql_command} $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME -e ";" > /dev/null 2>&1) ; then
|
|
fatal "Cannot connect to Database '$DATABASE_NAME'!"
|
|
fi
|
|
fi
|
|
echo_done
|
|
|
|
|
|
# -----
|
|
# - Doing some pre-script tasks
|
|
# -----
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[37m\033[1mDoing some pre-script tasks..\033[m"
|
|
echo ""
|
|
fi
|
|
|
|
|
|
# - Deaktiviere Cronjobs
|
|
# -
|
|
_backup_crontab_file=/tmp/crontab_root.${backup_date}
|
|
echononl " Backup Crontab to '$_backup_crontab_file'"
|
|
crontab -l > $_backup_crontab_file 2> $log_file
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Remove crontab for root.."
|
|
crontab -r > $log_file 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
|
|
# - Stop Apache Webserver
|
|
# -
|
|
blank_line
|
|
echononl " Stop Apache Webserver.."
|
|
if service_exists apache2 ; then
|
|
systemctl stop apache2
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
fatal "$(cat $log_file)"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
blank_line
|
|
# - GET current (global) Autocommit value
|
|
# -
|
|
echononl " GET current (global) value \033[1mautocommit\033[m"
|
|
CUR_AUTOCOMMIT="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SHOW GLOBAL VARIABLES LIKE 'autocommit'" | awk '{print$2}')" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
# - GET current (global) value for 'foreign_key_checks'
|
|
# -
|
|
echononl " GET current (global) value \033[1mforeign_key_checks\033[m"
|
|
CUR_FOREIGN_KEY_CHECKS="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SHOW GLOBAL VARIABLES LIKE 'foreign_key_checks'" | awk '{print$2}')" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
# - GET current (global) value for 'unique_checks'
|
|
# -
|
|
echononl " GET current (global) value \033[1munique_checks\033[m"
|
|
CUR_UNIQUE_CHECKS="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SHOW GLOBAL VARIABLES LIKE 'unique_checks'" | awk '{print$2}')" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
# - GET current (global) value for 'innodb_flush_log_at_trx_commit'
|
|
# -
|
|
echononl " GET current (global) value \033[1minnodb_flush_log_at_trx_commit\033[m"
|
|
CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SHOW GLOBAL VARIABLES LIKE 'innodb_flush_log_at_trx_commit'" | awk '{print$2}')" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
# - GET current (global) value for 'max_allowed_packet'
|
|
# -
|
|
echononl " GET current (global) value \033[1mmax_allowed_packet\033[m"
|
|
CUR_MAX_ALLOWED_PACKET="$(${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'" | awk '{print$2}')" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
blank_line
|
|
|
|
echononl " Set Autocommit to OFF"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='OFF'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set foreign_key_checks to OFF"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL foreign_key_checks='OFF'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set unique_checks to OFF"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL unique_checks='OFF'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set innodb_flush_log_at_trx_commit to 2"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=2" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set max_allowed_packet to 1G"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL max_allowed_packet=1073741824" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
|
|
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[1mProcessing dumping database \033[32m$DATABASE_NAME\033[m"
|
|
echo ""
|
|
fi
|
|
|
|
echononl " Dump Database '${DATABASE_NAME}'.."
|
|
b_timestamp=$(date +"%s")
|
|
if [[ -n "$DATABASE_SERVER" ]] ; then
|
|
${mysqldump_command} -h $DATABASE_SERVER $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME > ${DATABASE_DUMP_FOLDER}/${DATABASE_DUMP_FILEi} 2> $log_file
|
|
else
|
|
${mysqldump_command} $DATABASE_CREDENTIALS_ARGS $DATABASE_NAME > ${DATABASE_DUMP_FOLDER}/${DATABASE_DUMP_FILE} 2> $log_file
|
|
fi
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
# -----
|
|
# - Doing some post-script tasks
|
|
# -----
|
|
|
|
if ! $QUIET_MODE ; then
|
|
echo ""
|
|
echo ""
|
|
echo -e "\033[37m\033[1mDoing some post-script tasks..\033[m"
|
|
echo ""
|
|
fi
|
|
|
|
echononl " Set Autocommit to $CUR_AUTOCOMMIT"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL autocommit='$CUR_AUTOCOMMIT'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
CUR_AUTOCOMMIT=""
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set foreign_key_checks to $CUR_FOREIGN_KEY_CHECKS"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL foreign_key_checks='$CUR_FOREIGN_KEY_CHECKS'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
CUR_FOREIGN_KEY_CHECKS=""
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set unique_checks to $CUR_UNIQUE_CHECKS"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL unique_checks='$CUR_UNIQUE_CHECKS'" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
CUR_UNIQUE_CHECKS=""
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set innodb_flush_log_at_trx_commit to $CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL innodb_flush_log_at_trx_commit=$CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
CUR_INNODB_FLUSH_LOG_AT_TRX_COMMIT=""
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
echononl " Set max_allowed_packet to $CUR_MAX_ALLOWED_PACKET"
|
|
${mysql_command} $DATABASE_CREDENTIALS_ARGS -N -s -e "SET GLOBAL max_allowed_packet=$CUR_MAX_ALLOWED_PACKET" >> $log_file 2>&1
|
|
if [[ $? -eq 0 ]];then
|
|
echo_ok
|
|
CUR_MAX_ALLOWED_PACKET=""
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
|
|
blank_line
|
|
|
|
# - Start Apache Webserver
|
|
# -
|
|
blank_line
|
|
echononl " Start Apache Webserver.."
|
|
if service_exists apache2 ; then
|
|
systemctl start apache2 > $log_file 2>&1
|
|
if [[ $? -eq 0 ]]; then
|
|
echo_ok
|
|
else
|
|
echo_failed
|
|
error "$(cat $log_file)"
|
|
fi
|
|
else
|
|
echo_skipped
|
|
fi
|
|
|
|
|
|
clean_up 0
|