improve logging
parent
a3dbe6cebb
commit
bf527e0090
|
|
@ -6,16 +6,18 @@ LOGFILE="/var/log/borgwrapper/borgwrapper.log"
|
||||||
|
|
||||||
# Create log directory if not exist
|
# Create log directory if not exist
|
||||||
if [ ! -d $(dirname ${LOGFILE}) ]; then
|
if [ ! -d $(dirname ${LOGFILE}) ]; then
|
||||||
mkdir $(dirname ${LOGFILE}
|
mkdir $(dirname ${LOGFILE})
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
log () {
|
log () {
|
||||||
echo "$@" >> ${LOGFILE}
|
message=${*:-$(</dev/stdin)}
|
||||||
|
echo "$(date) info: ${message}" >> ${LOGFILE}
|
||||||
}
|
}
|
||||||
|
|
||||||
err () {
|
err () {
|
||||||
echo "$@" >> ${LOGFILE}
|
message=${*:-$(</dev/stdin)}
|
||||||
|
echo "$(date) error: ${message}" >> ${LOGFILE}
|
||||||
}
|
}
|
||||||
|
|
||||||
print_usage () {
|
print_usage () {
|
||||||
|
|
@ -93,7 +95,7 @@ borg_init () {
|
||||||
)
|
)
|
||||||
fi
|
fi
|
||||||
log "Initializing ${BORG_REPO}"
|
log "Initializing ${BORG_REPO}"
|
||||||
${BORG} init "${BORG_INIT_ARGS[@]}" "${BORG_REPO}" > ${LOGFILE}
|
${BORG} init "${BORG_INIT_ARGS[@]}" "${BORG_REPO}" 2>&1 | log
|
||||||
}
|
}
|
||||||
|
|
||||||
borg_backup () {
|
borg_backup () {
|
||||||
|
|
@ -125,7 +127,7 @@ borg_backup () {
|
||||||
"${BORG_REPO}"::"${SYSTEM_NAME}-$(date -u +'%Y-%m-%dT%H-%M-%SZ')" \
|
"${BORG_REPO}"::"${SYSTEM_NAME}-$(date -u +'%Y-%m-%dT%H-%M-%SZ')" \
|
||||||
"${PATHS[@]}" \
|
"${PATHS[@]}" \
|
||||||
"${EXCLUDE_CMD[@]}" \
|
"${EXCLUDE_CMD[@]}" \
|
||||||
>> ${LOGFILE} \
|
2>&1 | log \
|
||||||
|| log "Error backing up. Has repo been initialized?"
|
|| log "Error backing up. Has repo been initialized?"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -152,7 +154,7 @@ borg_prune () {
|
||||||
--keep-monthly=${KEEP_MONTHLY:-0} \
|
--keep-monthly=${KEEP_MONTHLY:-0} \
|
||||||
--keep-yearly=${KEEP_YEARLY:-0} \
|
--keep-yearly=${KEEP_YEARLY:-0} \
|
||||||
"${BORG_REPO}" \
|
"${BORG_REPO}" \
|
||||||
>> "${LOGFILE}
|
2>&1 | log
|
||||||
}
|
}
|
||||||
|
|
||||||
borg_verify () {
|
borg_verify () {
|
||||||
|
|
@ -163,23 +165,23 @@ borg_verify () {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log "Running borg check"
|
log "Running borg check"
|
||||||
${BORG} check "${BORG_CHECK_ARGS[@]}" "${BORG_REPO}" >> ${LOGFILE}
|
${BORG} check "${BORG_CHECK_ARGS[@]}" "${BORG_REPO}" 2>&1 | log
|
||||||
}
|
}
|
||||||
|
|
||||||
borg_exec () {
|
borg_exec () {
|
||||||
export BORG_REPO
|
export BORG_REPO
|
||||||
${BORG} "$@" >> ${LOGFILE}
|
${BORG} "$@" | log
|
||||||
}
|
}
|
||||||
|
|
||||||
convert_rate () {
|
convert_rate () {
|
||||||
# Convert IN_RATE to bytes
|
# Convert IN_RATE to bytes
|
||||||
local IN_RATE=${1}
|
local IN_RATE=${1}
|
||||||
local RATE=0
|
local RATE=0
|
||||||
local B_REGEX="^([0-9]+)$"
|
local B_REGEX='^([0-9]+)$'
|
||||||
local KIB_REGEX="^([0-9]+)K$"
|
local KIB_REGEX='^([0-9]+)K$'
|
||||||
local MIB_REGEX="^([0-9]+)M$"
|
local MIB_REGEX='^([0-9]+)M$'
|
||||||
local GIB_REGEX="^([0-9]+)G$"
|
local GIB_REGEX='^([0-9]+)G$'
|
||||||
local TIB_REGEX="^([0-9]+)T$"
|
local TIB_REGEX='^([0-9]+)T$'
|
||||||
|
|
||||||
if [[ ${IN_RATE} =~ ${TIB_REGEX} ]]; then
|
if [[ ${IN_RATE} =~ ${TIB_REGEX} ]]; then
|
||||||
RATE=$(( ${BASH_REMATCH[1]} * 1024**4 ))
|
RATE=$(( ${BASH_REMATCH[1]} * 1024**4 ))
|
||||||
|
|
@ -192,16 +194,16 @@ convert_rate () {
|
||||||
elif [[ ${IN_RATE} =~ ${B_REGEX} ]]; then
|
elif [[ ${IN_RATE} =~ ${B_REGEX} ]]; then
|
||||||
RATE=${BASH_REMATCH[1]}
|
RATE=${BASH_REMATCH[1]}
|
||||||
else
|
else
|
||||||
>&2 echo "${IN_RATE} is not a valid rate"
|
>&2 echo "${IN_RATE} is not a valid rate" | log
|
||||||
false >> ${LOGFILE}
|
false
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo ${RATE} >> ${LOGFILE}
|
echo ${RATE} | log
|
||||||
}
|
}
|
||||||
|
|
||||||
limit_bw () {
|
limit_bw () {
|
||||||
if ! [[ -x $(command -v pv) ]]; then
|
if ! [[ -x $(command -v pv) ]]; then
|
||||||
>&2 echo "WARNING: BWLIMIT is enabled, but the utility 'pv' is not available. Continuing without bandwidth limitation."
|
>&2 echo "WARNING: BWLIMIT is enabled, but the utility 'pv' is not available. Continuing without bandwidth limitation." | log
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -210,7 +212,7 @@ limit_bw () {
|
||||||
chmod +x ${PV_WRAPPER}
|
chmod +x ${PV_WRAPPER}
|
||||||
echo -e '#!/bin/bash\npv -q -L ${RATE_LIMIT} | "$@"' > ${PV_WRAPPER}
|
echo -e '#!/bin/bash\npv -q -L ${RATE_LIMIT} | "$@"' > ${PV_WRAPPER}
|
||||||
export BORG_RSH="${PV_WRAPPER} ${BORG_RSH}"
|
export BORG_RSH="${PV_WRAPPER} ${BORG_RSH}"
|
||||||
echo "Limiting bandwith to ${RATE_LIMIT} bytes/s" >> ${LOGFILE}
|
echo "Limiting bandwith to ${RATE_LIMIT} bytes/s" | log
|
||||||
}
|
}
|
||||||
|
|
||||||
exit_backup () {
|
exit_backup () {
|
||||||
|
|
@ -265,7 +267,7 @@ MODE="${1}"
|
||||||
|
|
||||||
|
|
||||||
echo "Loading config from ${CONFIG}"
|
echo "Loading config from ${CONFIG}"
|
||||||
source "${CONFIG}" || exit 1
|
source "${CONFIG}" || log "Config file: ${CONFIG} does not exit"; exit 1
|
||||||
|
|
||||||
# Set some defaults
|
# Set some defaults
|
||||||
[[ -n ${BORG_RSH} ]] || BORG_RSH="ssh"
|
[[ -n ${BORG_RSH} ]] || BORG_RSH="ssh"
|
||||||
|
|
@ -298,17 +300,22 @@ mkdir -p "${LOCKDIR}"
|
||||||
borg_init
|
borg_init
|
||||||
elif [[ ${MODE} == "backup" ]]; then
|
elif [[ ${MODE} == "backup" ]]; then
|
||||||
trap 'exit_backup $?' ERR INT TERM
|
trap 'exit_backup $?' ERR INT TERM
|
||||||
save_package_list
|
|
||||||
echo "Saving package list..." >> ${LOGFILE}
|
|
||||||
dump_mongo
|
|
||||||
echo "Dumping mongo..." >> ${LOGFILE}
|
|
||||||
dump_sql
|
|
||||||
echo "Dumping sql..." >> ${LOGFILE}
|
|
||||||
|
|
||||||
|
log "Saving package list..."
|
||||||
|
save_package_list
|
||||||
|
|
||||||
|
log "Dumping mongo..."
|
||||||
|
dump_mongo
|
||||||
|
|
||||||
|
log "Dumping sql..."
|
||||||
|
dump_sql
|
||||||
|
|
||||||
|
log "Running borg backup..."
|
||||||
borg_backup
|
borg_backup
|
||||||
echo "Running borg backup..." >> ${LOGFILE}
|
|
||||||
|
log "Running borg prune..."
|
||||||
borg_prune
|
borg_prune
|
||||||
echo "Running borg prune..." >> ${LOGFILE}
|
|
||||||
exit_backup 0
|
exit_backup 0
|
||||||
elif [[ ${MODE} == "verify" ]]; then
|
elif [[ ${MODE} == "verify" ]]; then
|
||||||
trap 'exit_verify $?' ERR INT TERM
|
trap 'exit_verify $?' ERR INT TERM
|
||||||
|
|
@ -316,7 +323,7 @@ mkdir -p "${LOCKDIR}"
|
||||||
exit_verify 0
|
exit_verify 0
|
||||||
elif [[ ${MODE} == "exec" ]]; then
|
elif [[ ${MODE} == "exec" ]]; then
|
||||||
if [[ $# -le 1 ]]; then
|
if [[ $# -le 1 ]]; then
|
||||||
>&2 echo "ERROR: No borg arguments given" >> ${LOGFILE}
|
>&2 echo "ERROR: No borg arguments given" | err
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue