Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
149 changes: 94 additions & 55 deletions automysqlbackup
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ load_default_config() {
CONFIG_rotation_weekly=35
CONFIG_rotation_monthly=150
CONFIG_mysql_dump_port=3306
CONFIG_mysql_dump_usessl='yes'
CONFIG_mysql_dump_usessl='no'
CONFIG_mysql_dump_username='root'
CONFIG_mysql_dump_password=''
CONFIG_mysql_dump_host='localhost'
Expand All @@ -81,9 +81,12 @@ load_default_config() {
CONFIG_mysql_dump_single_transaction='no'
CONFIG_mysql_dump_master_data=
CONFIG_mysql_dump_full_schema='yes'
CONFIG_mysql_dump_flush_logs='no'
CONFIG_mysql_dump_dbstatus='yes'
CONFIG_mysql_dump_differential='no'
CONFIG_mysql_dump_login_path='automysqldump'
CONFIG_mysql_dump_login_path_file='automysqldump'
CONFIG_mysql_dump_config_extra_file=''
CONFIG_mysql_dump_encrypted_login='no'
CONFIG_backup_local_files=()
CONFIG_db_names=()
CONFIG_db_month_names=()
Expand All @@ -98,6 +101,38 @@ load_default_config() {
CONFIG_encrypt_password='password0123'
}

# OS dependent options (showstoppers on MacOS)
if [[ $OSTYPE == darwin* ]]; then
OS_sed_option='-E'
OS_du_extra_option=''
else
OS_sed_option='-r'
OS_du_extra_option='--si'
fi

mysql_commands() {
VERSION=`mysql -V | grep -oE "[0-9]+\.[0-9]+\.[0-9]+"`
NODOT_VER=`echo $VERSION | sed $OS_sed_option 's/\.//g'`
if [ "${CONFIG_mysql_dump_encrypted_login}" = "yes" ]; then
if [ "${CONFIG_mysql_dump_config_extra_file}" != "" ]; then
export MYSQLDUMP="mysqldump --defaults-extra-file=$CONFIG_mysql_dump_config_extra_file"
export MYSQLSHOW="mysqlshow --defaults-extra-file=$CONFIG_mysql_dump_config_extra_file"
export MYSQL="mysql --defaults-extra-file=$CONFIG_mysql_dump_config_extra_file"
else
export MYSQLDUMP="mysqldump --login-path=$CONFIG_mysql_dump_login_path"
export MYSQLSHOW="mysqlshow --login-path=$CONFIG_mysql_dump_login_path"
export MYSQL="mysql --login-path=$CONFIG_mysql_dump_login_path"
if [ -n "${CONFIG_mysql_dump_login_path_file}" ]; then
export MYSQL_TEST_LOGIN_FILE=$CONFIG_mysql_dump_login_path_file
fi
fi
else
export MYSQLDUMP="mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host}";
export MYSQLSHOW="mysqlshow --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host}";
export MYSQL="mysql --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host}";
fi
}

# @return: true, if variable is set; else false
isSet() {
if [[ ! ${!1} && ${!1-_} ]]; then return 1; else return 0; fi
Expand Down Expand Up @@ -438,7 +473,7 @@ backup_local_files () {
# @deps: load_default_config
parse_configuration () {
# OPT string for use with mysqldump ( see man mysqldump )
opt=( '--quote-names' '--opt' )
opt=( '--quote-names' '--opt' '--events' )

# OPT string for use with mysql (see man mysql )
mysql_opt=()
Expand All @@ -449,21 +484,26 @@ parse_configuration () {
# OPT string for use with mysqlstatus
opt_dbstatus=( '--status' )

[[ "${CONFIG_mysql_dump_usessl}" = "yes" ]] && {
opt=( "${opt[@]}" '--ssl' )
mysql_opt=( "${mysql_opt[@]}" '--ssl' )
opt_fullschema=( "${opt_fullschema[@]}" '--ssl' )
opt_dbstatus=( "${opt_dbstatus[@]}" '--ssl' )
}
if [ "$NODOT_VER" -ge 56 ]; then
[[ "${CONFIG_mysql_dump_usessl}" = "yes" ]] && {
opt=( "${opt[@]}" '--ssl-mode=REQUIRED' )
mysql_opt=( "${mysql_opt[@]}" '--ssl-mode=REQUIRED' )
opt_fullschema=( "${opt_fullschema[@]}" '--ssl-mode=REQUIRED' )
opt_dbstatus=( "${opt_dbstatus[@]}" '--ssl-mode=REQUIRED' )
}
else
[[ "${CONFIG_mysql_dump_usessl}" = "yes" ]] && {
opt=( "${opt[@]}" '--ssl' )
mysql_opt=( "${mysql_opt[@]}" '--ssl' )
opt_fullschema=( "${opt_fullschema[@]}" '--ssl' )
opt_dbstatus=( "${opt_dbstatus[@]}" '--ssl' )
}
fi
[[ "${CONFIG_mysql_dump_master_data}" ]] && (( ${CONFIG_mysql_dump_master_data} == 1 || ${CONFIG_mysql_dump_master_data} == 2 )) && { opt=( "${opt[@]}" "--master-data=${CONFIG_mysql_dump_master_data}" );}
[[ "${CONFIG_mysql_dump_single_transaction}" = "yes" ]] && {
opt=( "${opt[@]}" '--single-transaction' )
opt_fullschema=( "${opt_fullschema[@]}" '--single-transaction' )
}
[[ "${CONFIG_mysql_dump_flush_logs}" = "yes" ]] && {
opt=( "${opt[@]}" '--flush-logs' )
}

[[ "${CONFIG_mysql_dump_commcomp}" = "yes" ]] && {
opt=( "${opt[@]}" '--compress' )
opt_fullschema=( "${opt_fullschema[@]}" '--compress' )
Expand Down Expand Up @@ -519,7 +559,7 @@ parse_configuration () {
db=${i%.*}
table=${i#"$db".}
r='\*'; [[ "$i" =~ $r ]] || { tmp[z++]="$i"; continue; }
while read -r; do tmp[z++]="${db}.${REPLY}"; done < <(mysql --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${mysql_opt[@]}" --batch --skip-column-names -e "select table_name from information_schema.tables where table_schema='${db}' and table_name like '${table//\*/%}';")
while read -r; do tmp[z++]="${db}.${REPLY}"; done < <($MYSQL "${mysql_opt[@]}" --batch --skip-column-names -e "select table_name from information_schema.tables where table_schema='${db}' and table_name like '${table//\*/%}';")
done
for l in "${tmp[@]}"; do echo "exclude $l";done
CONFIG_table_exclude=("${tmp[@]}")
Expand All @@ -540,28 +580,28 @@ dbstatus() {
if (( $CONFIG_dryrun )); then
case "${CONFIG_mysql_dump_compression}" in
'gzip')
echo "dry-running: mysqlshow --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_dbstatus[@]} | gzip_compression > ${1}${suffix}";
echo "dry-running: $MYSQLSHOW ${opt_dbstatus[@]} | gzip_compression > ${1}${suffix}";
;;
'bzip2')
echo "dry-running: mysqlshow --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_dbstatus[@]} | bzip2_compression > ${1}${suffix}";
echo "dry-running: $MYSQLSHOW ${opt_dbstatus[@]} | bzip2_compression > ${1}${suffix}";
;;
*)
echo "dry-running: mysqlshow --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_dbstatus[@]} > ${1}${suffix}";
echo "dry-running: $MYSQLSHOW ${opt_dbstatus[@]} > ${1}${suffix}";
;;
esac
return 0;
else
case "${CONFIG_mysql_dump_compression}" in
'gzip')
mysqlshow --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_dbstatus[@]}" | gzip_compression > "${1}${suffix}";
$MYSQLSHOW "${opt_dbstatus[@]}" | gzip_compression > "${1}${suffix}";
return $?
;;
'bzip2')
mysqlshow --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_dbstatus[@]}" | bzip2_compression > "${1}${suffix}";
$MYSQLSHOW "${opt_dbstatus[@]}" | bzip2_compression > "${1}${suffix}";
return $?
;;
*)
mysqlshow --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_dbstatus[@]}" > "${1}${suffix}";
$MYSQLSHOW "${opt_dbstatus[@]}" > "${1}${suffix}";
return $?
;;
esac
Expand All @@ -576,28 +616,28 @@ fullschema () {
if (( $CONFIG_dryrun )); then
case "${CONFIG_mysql_dump_compression}" in
'gzip')
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_fullschema[@]} | gzip_compression > ${1}${suffix}";
echo "dry-running: $MYSQLDUMP ${opt_fullschema[@]} | gzip_compression > ${1}${suffix}";
;;
'bzip2')
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_fullschema[@]} | bzip2_compression > ${1}${suffix}";
echo "dry-running: $MYSQLDUMP ${opt_fullschema[@]} | bzip2_compression > ${1}${suffix}";
;;
*)
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt_fullschema[@]} > ${1}${suffix}";
echo "dry-running: $MYSQLDUMP ${opt_fullschema[@]} > ${1}${suffix}";
;;
esac
return 0;
else
case "${CONFIG_mysql_dump_compression}" in
'gzip')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_fullschema[@]}" | gzip_compression > "${1}${suffix}";
$MYSQLDUMP "${opt_fullschema[@]}" | gzip_compression > "${1}${suffix}";
return $?
;;
'bzip2')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_fullschema[@]}" | bzip2_compression > "${1}${suffix}";
$MYSQLDUMP "${opt_fullschema[@]}" | bzip2_compression > "${1}${suffix}";
return $?
;;
*)
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt_fullschema[@]}" > "${1}${suffix}";
$MYSQLDUMP "${opt_fullschema[@]}" > "${1}${suffix}";
return $?
;;
esac
Expand Down Expand Up @@ -715,13 +755,13 @@ process_dbs() {
uid="${uid:-8:8}"
case "${CONFIG_mysql_dump_compression}" in
'gzip')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" | gzip_compression > "$cfname";
$MYSQLDUMP "${opt[@]}" "$@" | gzip_compression > "$cfname";
;;
'bzip2')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" | bzip2_compression > "$cfname";
$MYSQLDUMP "${opt[@]}" "$@" | bzip2_compression > "$cfname";
;;
*)
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" > "$cfname";
$MYSQLDUMP "${opt[@]}" "$@" > "$cfname";
;;
esac
add_manifest_entry "$manifest_file" "$cfname" "$pid" "$db" && parse_manifest "$manifest_file" && cp -al "$cfname" "${CONFIG_backup_dir}"/latest/ && echo "Generated master backup $cfname" && return 0 || return 1
Expand All @@ -734,29 +774,29 @@ process_dbs() {
case "${CONFIG_mysql_dump_compression}" in
'gzip')
if (( $filename_flags & $filename_flag_gz )); then
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | gzip_compression > "$cfname";
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") | gzip_compression > "$cfname";
elif (( $filename_flags & $filename_flag_bz2 )); then
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | gzip_compression > "$cfname";
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") | gzip_compression > "$cfname";
else
diff "${manifest_latest_master_entry[0]}" <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | gzip_compression > "$cfname";
diff "${manifest_latest_master_entry[0]}" <($MYSQLDUMP "${opt[@]}" "$@") | gzip_compression > "$cfname";
fi
;;
'bzip2')
if (( $filename_flags & $filename_flag_gz )); then
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | bzip2_compression > "$cfname";
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") | bzip2_compression > "$cfname";
elif (( $filename_flags & $filename_flag_bz2 )); then
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | bzip2_compression > "$cfname";
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") | bzip2_compression > "$cfname";
else
diff "${manifest_latest_master_entry[0]}" <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") | bzip2_compression > "$cfname";
diff "${manifest_latest_master_entry[0]}" <($MYSQLDUMP "${opt[@]}" "$@") | bzip2_compression > "$cfname";
fi
;;
*)
if (( $filename_flags & $filename_flag_gz )); then
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") > "$cfname";
diff <(gzip_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") > "$cfname";
elif (( $filename_flags & $filename_flag_bz2 )); then
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") > "$cfname";
diff <(bzip2_compression -dc "${manifest_latest_master_entry[0]}") <($MYSQLDUMP "${opt[@]}" "$@") > "$cfname";
else
diff "${manifest_latest_master_entry[0]}" <(mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@") > "$cfname";
diff "${manifest_latest_master_entry[0]}" <($MYSQLDUMP "${opt[@]}" "$@") > "$cfname";
fi
;;
esac
Expand All @@ -770,28 +810,28 @@ process_dbs() {
if (( $CONFIG_dryrun )); then
case "${CONFIG_mysql_dump_compression}" in
'gzip')
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt[@]} $@ | gzip_compression > ${cfname}"
echo "dry-running: $MYSQLDUMP ${opt[@]} $@ | gzip_compression > ${cfname}"
;;
'bzip2')
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt[@]} $@ | bzip2_compression > ${cfname}"
echo "dry-running: $MYSQLDUMP ${opt[@]} $@ | bzip2_compression > ${cfname}"
;;
*)
echo "dry-running: mysqldump --user=${CONFIG_mysql_dump_username} --password=${CONFIG_mysql_dump_password} --host=${CONFIG_mysql_dump_host} ${opt[@]} $@ > ${cfname}"
echo "dry-running: $MYSQLDUMP ${opt[@]} $@ > ${cfname}"
;;
esac
return 0;
else
case "${CONFIG_mysql_dump_compression}" in
'gzip')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" | gzip_compression > "${cfname}"
$MYSQLDUMP "${opt[@]}" "$@" | gzip_compression > "${cfname}"
ret=$?
;;
'bzip2')
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" | bzip2_compression > "${cfname}"
$MYSQLDUMP "${opt[@]}" "$@" | bzip2_compression > "${cfname}"
ret=$?
;;
*)
mysqldump --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${opt[@]}" "$@" > "${cfname}"
$MYSQLDUMP "${opt[@]}" "$@" > "${cfname}"
ret=$?
;;
esac
Expand Down Expand Up @@ -855,7 +895,6 @@ directory_checks_enable_logging () {
[[ "${CONFIG_mysql_dump_dbstatus}" = 'yes' ]] && { checkdirs=( "${checkdirs[@]}" "${CONFIG_backup_dir}/status" ); }

tmp_permcheck=0
printf '# Checking for permissions to write to folders:\n'


# "dirname ${CONFIG_backup_dir}" exists?
Expand All @@ -878,14 +917,9 @@ directory_checks_enable_logging () {


# -> check base folder
printf 'base folder %s ... ' "$(dirname "${CONFIG_backup_dir}")"
if [[ -d "$(dirname "${CONFIG_backup_dir}")" ]]; then

printf 'exists ... ok.\n'
printf 'backup folder %s ... ' "${CONFIG_backup_dir}"

if [[ -d "${CONFIG_backup_dir}" ]]; then
printf 'exists ... writable? '
if (( $CONFIG_dryrun )); then
printf 'dry-running. Skipping. Logging to /tmp\n'
log_file="/tmp/${CONFIG_mysql_dump_host}-`date +%N`.log"
Expand All @@ -894,7 +928,6 @@ directory_checks_enable_logging () {
tmp_permcheck=1
else
if chk_folder_writable "${CONFIG_backup_dir}"; then
printf 'yes. Proceeding.\n'
log_file="${CONFIG_backup_dir}/${CONFIG_mysql_dump_host}-`date +%N`.log"
log_errfile="${CONFIG_backup_dir}/ERRORS_${CONFIG_mysql_dump_host}-`date +%N`.log"
activateIO "$log_file" "$log_errfile"
Expand Down Expand Up @@ -1068,7 +1101,7 @@ parse_databases() {
printf "# Parsing databases ... "
# bash 3.0
local i;i=0;
while read -r; do alldbnames[i++]="$REPLY"; done < <(mysql --user="${CONFIG_mysql_dump_username}" --password="${CONFIG_mysql_dump_password}" --host="${CONFIG_mysql_dump_host}" "${mysql_opt[@]}" --batch --skip-column-names -e "show databases")
while read -r; do alldbnames[i++]="$REPLY"; done < <($MYSQL "${mysql_opt[@]}" --batch --skip-column-names -e "show databases")
unset i

# mkfifo foo || exit; trap 'rm -f foo' EXIT
Expand Down Expand Up @@ -1648,9 +1681,12 @@ method_backup () {
load_default_config

trap mail_cleanup EXIT SIGHUP SIGINT SIGQUIT SIGTERM
if [[ -r "${CONFIG_configfile}" ]]; then source "${CONFIG_configfile}"; echo "Parsed config file \"${CONFIG_configfile}\""; else let "N |= $N_config_file_missing"; fi; echo
if [[ -r "${CONFIG_configfile}" ]]; then source "${CONFIG_configfile}"; else let "N |= $N_config_file_missing"; fi
if (( $opt_flag_config_file )); then if [[ -r "${opt_config_file}" ]]; then source "${opt_config_file}"; let "N |= $N_arg_conffile_parsed"; else let "N |= $N_arg_conffile_unreadable"; fi; else let "N |= $N_too_many_args"; fi

# load mysql commands
mysql_commands

(( $CONFIG_dryrun )) && {
echo "NOTE: We are dry-running. That means, that the script just shows you what it would do, if it were operating normally."
echo "THE PRINTED COMMANDS CAN'T BE COPIED AND EXECUTED IF THERE ARE SPECIAL CHARACTERS, SPACES, ETC. IN THERE THAT WOULD NEED TO BE PROPERLY QUOTED IN ORDER TO WORK. THESE WERE CORRECTLY QUOTED FOR THE OUTPUT COMMAND, BUT CAN'T BE SEEN NOW."
Expand Down Expand Up @@ -1974,7 +2010,7 @@ method_backup () {
# -> finished information
echo "Total disk space used for backup storage..."
echo "Size - Location"
echo `du -hsH "${CONFIG_backup_dir}"`
echo `du -hs $OS_du_extra_option "${CONFIG_backup_dir}"`
echo
echo "======================================================================"
# <- finished information
Expand Down Expand Up @@ -2018,6 +2054,9 @@ method_list_manifest_entries () {
if [[ -r "${CONFIG_configfile}" ]]; then source "${CONFIG_configfile}"; echo "Parsed config file \"${CONFIG_configfile}\""; else let "N |= $N_config_file_missing"; fi; echo
if (( $opt_flag_config_file )); then if [[ -r "${opt_config_file}" ]]; then source "${opt_config_file}"; let "N |= $N_arg_conffile_parsed"; else let "N |= $N_arg_conffile_unreadable"; fi; else let "N |= $N_too_many_args"; fi

# load mysql commands
mysql_commands

export LC_ALL=C
PROGNAME=`basename $0`
PATH=${PATH}:/usr/local/bin:/usr/bin:/bin:/usr/local/mysql/bin
Expand Down Expand Up @@ -2214,7 +2253,7 @@ NO_ARGS=0
E_OPTERROR=85

if (( $# == $NO_ARGS )); then # Script invoked with no command-line args?
echo "Invoking backup method."; echo; method_backup
method_backup
fi

while getopts ":c:blh" Option
Expand Down
Loading