Compare commits
5 Commits
957993aff5
...
main
Author | SHA1 | Date | |
---|---|---|---|
6390f3f284 | |||
0fa2d55653 | |||
74b94e4c64 | |||
ebca1bde5d | |||
ef9886bd52 |
@ -140,6 +140,14 @@ echo_wait(){
|
|||||||
fi
|
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() {
|
trim() {
|
||||||
local var="$*"
|
local var="$*"
|
||||||
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
|
||||||
@ -312,14 +320,28 @@ BORG_LOG_FILE="${BORG_LOG_DIR}/borg-backup.log"
|
|||||||
|
|
||||||
if [[ -z "${DB_TYPE}" ]] ; then
|
if [[ -z "${DB_TYPE}" ]] ; then
|
||||||
DB_TYPE="${DEFAULT_DB_TYPE}"
|
DB_TYPE="${DEFAULT_DB_TYPE}"
|
||||||
elif [[ "${DB_TYPE,,}" = "mysql" ]] ; then
|
|
||||||
[[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}"
|
|
||||||
elif [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then
|
|
||||||
[[ -z "${PSQL_SYSTEM_USER}" ]] && PSQL_SYSTEM_USER="${DEFAULT_PSQL_SYSTEM_USER}"
|
|
||||||
else
|
else
|
||||||
fatal "Unknown DB_TYPE '${DB_TYPE}'."
|
# replace comma by blank sign
|
||||||
|
DB_TYPE=${DB_TYPE/,/ }
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
declare -a db_type_arr=()
|
||||||
|
|
||||||
|
for _db_type in ${DB_TYPE}; do
|
||||||
|
if [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then
|
||||||
|
db_type_arr+=("postgresql")
|
||||||
|
else
|
||||||
|
db_type_arr+=("${_db_type,,}")
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if containsElement "mysql" "${db_type_arr[@]}" ; then
|
||||||
|
[[ -z "${MYSQL_CREDENTIALS}" ]] && MYSQL_CREDENTIALS="${DEFAULT_MYSQL_CREDENTIALS}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if containsElement "postgresql" "${db_type_arr[@]}" ; then
|
||||||
|
[[ -z "${PSQL_SYSTEM_USER}" ]] && PSQL_SYSTEM_USER="${DEFAULT_PSQL_SYSTEM_USER}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
[[ -z "${BACKUP_DIRECTORIES}" ]] && BACKUP_DIRECTORIES="${DEFAULT_BACKUP_DIRECTORIES}"
|
[[ -z "${BACKUP_DIRECTORIES}" ]] && BACKUP_DIRECTORIES="${DEFAULT_BACKUP_DIRECTORIES}"
|
||||||
@ -428,7 +450,9 @@ if [[ -n "${DB_TYPE}" ]] && [[ "${DB_TYPE,,}" = "!none" ]]; then
|
|||||||
blank_line
|
blank_line
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${DB_TYPE,,}" = "mysql" ]] ; then
|
if containsElement "mysql" "${db_type_arr[@]}" ; then
|
||||||
|
|
||||||
|
blank_line
|
||||||
|
|
||||||
echononl "Create an array of MySQL databases."
|
echononl "Create an array of MySQL databases."
|
||||||
|
|
||||||
@ -490,8 +514,11 @@ EOF
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
elif [[ "${DB_TYPE,,}" = "psql" ]] || [[ "${DB_TYPE,,}" = "postgresql" ]] || [[ "${DB_TYPE,,}" = "postgres" ]] ; then
|
if containsElement "postgresql" "${db_type_arr[@]}" ; then
|
||||||
|
|
||||||
|
blank_line
|
||||||
|
|
||||||
echononl "Create an array of PostgreSQL databases."
|
echononl "Create an array of PostgreSQL databases."
|
||||||
|
|
||||||
@ -551,6 +578,8 @@ EOF
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
blank_line
|
||||||
|
|
||||||
|
|
||||||
echononl "Create borg backup.."
|
echononl "Create borg backup.."
|
||||||
|
|
||||||
|
@ -329,7 +329,7 @@ else
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
BORG_REPO="${FQPN_BORG_REPO%%.*}"
|
BORG_REPO="${FQPN_BORG_REPO}"
|
||||||
|
|
||||||
|
|
||||||
LIST_OF_FILES_TO_RESTORE=
|
LIST_OF_FILES_TO_RESTORE=
|
||||||
@ -407,6 +407,8 @@ if [[ ! ${FQHN_BORG_HOSTNAME} =~ ^127 ]] && [[ ! "${FQHN_BORG_HOSTNAME,,}" = "
|
|||||||
BORG_RSH="${_BORG_RSH}"
|
BORG_RSH="${_BORG_RSH}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
export BORG_RSH
|
||||||
fi
|
fi
|
||||||
|
|
||||||
blank_line
|
blank_line
|
||||||
@ -414,6 +416,10 @@ blank_line
|
|||||||
echo -e "\033[32m--\033[m"
|
echo -e "\033[32m--\033[m"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
export BORG_HOST
|
||||||
|
export BORG_PASSPHRASE
|
||||||
|
export BORG_REPO
|
||||||
|
|
||||||
# List Borg Backups
|
# List Borg Backups
|
||||||
#
|
#
|
||||||
(
|
(
|
||||||
@ -437,9 +443,7 @@ done
|
|||||||
echo -e " \033[33m---------------------------------------------\033[m"
|
echo -e " \033[33m---------------------------------------------\033[m"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
export BORG_PASSPHRASE
|
BORG_RESTORE_PATH_BACKUP_SERVER="/backup/RESTORE/$(basename "${BORG_REPO}")/${BORG_BACKUP_ID}"
|
||||||
export BORG_REPO
|
|
||||||
export BORG_RSH
|
|
||||||
|
|
||||||
_BORG_RESTORE_PATH="/data/RESTORE/$(basename "${BORG_REPO}")/${BORG_BACKUP_ID}"
|
_BORG_RESTORE_PATH="/data/RESTORE/$(basename "${BORG_REPO}")/${BORG_BACKUP_ID}"
|
||||||
|
|
||||||
@ -533,9 +537,9 @@ export BORG_REPO=\"${BORG_REPO}\"
|
|||||||
export BORG_RSH=\"${BORG_RSH}\"
|
export BORG_RSH=\"${BORG_RSH}\"
|
||||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||||
|
|
||||||
mkdir -p \"${BORG_RESTORE_PATH}\"
|
mkdir -p \"${BORG_RESTORE_PATH_BACKUP_SERVER}\"
|
||||||
|
|
||||||
cd \"${BORG_RESTORE_PATH}\"
|
cd \"${BORG_RESTORE_PATH_BACKUP_SERVER}\"
|
||||||
|
|
||||||
borg --remote-path borg extract ${BORG_URL}::${BORG_BACKUP_ID} ${LIST_OF_FILES_TO_RESTORE}
|
borg --remote-path borg extract ${BORG_URL}::${BORG_BACKUP_ID} ${LIST_OF_FILES_TO_RESTORE}
|
||||||
"
|
"
|
||||||
@ -628,9 +632,9 @@ export BORG_PASSPHRASE=\"${BORG_PASSPHRASE}\"
|
|||||||
export BORG_REPO=\"${BORG_REPO}\"
|
export BORG_REPO=\"${BORG_REPO}\"
|
||||||
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes
|
||||||
|
|
||||||
mkdir -p \"${BORG_RESTORE_PATH}\"
|
mkdir -p \"${BORG_RESTORE_PATH_BACKUP_SERVER}\"
|
||||||
|
|
||||||
cd "${BORG_RESTORE_PATH}"
|
cd "${BORG_RESTORE_PATH_BACKUP_SERVER}"
|
||||||
|
|
||||||
borg --remote-path borg extract ${BORG_REPO}::${BORG_BACKUP_ID} ${LIST_OF_FILES_TO_RESTORE}
|
borg --remote-path borg extract ${BORG_REPO}::${BORG_BACKUP_ID} ${LIST_OF_FILES_TO_RESTORE}
|
||||||
"
|
"
|
||||||
|
@ -225,11 +225,11 @@ DEFAULT_BORG_RSH='ssh -i /root/.ssh/id_ed25519-borg-backup'
|
|||||||
# ----------
|
# ----------
|
||||||
|
|
||||||
|
|
||||||
if [[ -f "$conf_file" ]]; then
|
if [[ -z "${BORG_HOST}" ]] || [[ -z "${BORG_REPO}" ]] || [[ -z "${BORG_PASSPHRASE}" ]] ; then
|
||||||
source "$conf_file"
|
if [[ -f "$conf_file" ]]; then
|
||||||
else
|
source "$conf_file"
|
||||||
if [[ -z "${BORG_HOST}" ]] || [[ -z "${BORG_REPO}" ]] || [[ -z "${BORG_PASSPHRASE}" ]] ; then
|
else
|
||||||
fatal "No configuration file '$conf_file' present!"
|
fatal "No configuration file '$conf_file' present!"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -280,10 +280,18 @@ export BORG_RELOCATED_REPO_ACCESS_IS_OK
|
|||||||
|
|
||||||
echo -e " \033[1mDate\033[33GBorg Backup ID\033[m\n"
|
echo -e " \033[1mDate\033[33GBorg Backup ID\033[m\n"
|
||||||
|
|
||||||
while read -r _borg_id _date_weekday _date_date _date_time _time_stamp_borg_backup || [[ -n $_line ]] ; do
|
if [[ ${BORG_HOST} =~ ^127 ]] || [[ "${BORG_HOST,,}" =~ "localhost" ]] ; then
|
||||||
|
while read -r _borg_id _date_weekday _date_date _date_time _time_stamp_borg_backup || [[ -n $_line ]] ; do
|
||||||
|
|
||||||
echo -e " ${_date_weekday} ${_date_date} ${_date_time} [ \033[33m${_borg_id}\033[m ]"
|
echo -e " ${_date_weekday} ${_date_date} ${_date_time} [ \033[33m${_borg_id}\033[m ]"
|
||||||
|
|
||||||
done < <(borg list ${BORG_URL} 2> /dev/null)
|
done < <(borg list ${BORG_REPO} 2> /dev/null)
|
||||||
|
else
|
||||||
|
while read -r _borg_id _date_weekday _date_date _date_time _time_stamp_borg_backup || [[ -n $_line ]] ; do
|
||||||
|
|
||||||
|
echo -e " ${_date_weekday} ${_date_date} ${_date_time} [ \033[33m${_borg_id}\033[m ]"
|
||||||
|
|
||||||
|
done < <(borg list ${BORG_URL} 2> /dev/null)
|
||||||
|
fi
|
||||||
|
|
||||||
clean_up 0
|
clean_up 0
|
||||||
|
Reference in New Issue
Block a user