Only send log messages on errors.

This commit is contained in:
Christoph 2024-12-17 00:48:00 +01:00
parent 53ab70325a
commit 2d6485f06c
4 changed files with 176 additions and 47 deletions

View File

@ -697,48 +697,105 @@ durationReadable=$(printf "%02d hours %02d minutes %02d seconds" $durationHour $
echo -e "\n\n###### Server backup finished on ${endDateReadable} (${durationReadable}) ######\n" >> ${BORG_LOG_FILE}
blank_line
# Send Summery
# Error Handling
#
if $terminal ; then
declare -i error=$(grep -i -e"\[\s*ERROR" ${BORG_LOG_FILE} | wc -l)
declare -i warning=$(grep -i -e"\[\s*WARN" ${BORG_LOG_FILE} | wc -l)
if [ $error -gt 0 -o $warning -gt 0 ] ; then
# Send Summery
#
if $terminal ; then
echo -e -n " Send Summary.."
fi
fi
datum="$(date +"%d.%m.%Y %H:%M")"
datum="$(date +"%d.%m.%Y %H:%M")"
filesystem_usage="$(df -h)"
filesystem_usage="$(df -h)"
msg_head_line="\n\n# ---\n# Server backup finished on ${endDateReadable} (${durationReadable})\n# ---\n\n"
msg_head_line="\n\n# ---\n# Server backup finished on ${endDateReadable} (${durationReadable})\n# ---\n\n"
msg="$(cat "${BORG_LOG_FILE}")"
msg="$(cat "${BORG_LOG_FILE}")"
datum="$(date +"%d.%m.%Y")"
datum="$(date +"%d.%m.%Y")"
content_type='Content-Type: text/plain;\n charset="utf-8"'
content_type='Content-Type: text/plain;\n charset="utf-8"'
subject="Borg Backup - ${COMPANY} - ${datum}"
subject_utf8="$(echo "$subject" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?="
subject="Borg Backup - ${COMPANY} - ${datum}"
subject_utf8="$(echo "$subject" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?="
cat <<EOF >> ${BORG_LOG_FILE}
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n\${filesystem_usage}\n\${msg_head_line}\n\${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL}
EOF
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${filesystem_usage}\n${msg_head_line}\n${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${filesystem_usage}\n${msg_head_line}\n${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
if [[ $? -gt 0 ]] ; then
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
else
echo_ok
fi
blank_line
# Send Error Message
#
if $terminal ; then
echo -e -n " Send Error Message to ${ADMIN_EMAIL}.."
fi
err_msg="$(grep -A 2 -i -e"\[\s*ERROR" ${BORG_LOG_FILE})\n"
warn_msg="$(grep -A 2 -i -e"\[\s*WARN" ${BORG_LOG_FILE})\n"
msg_top="Borg Backup Error ${COMPANY} vom ${datum}.\nBorg Backup on '$(hostname -f)' beendet mit:"
msg_body_01="\t${error} Error(s)\n\t${warning} Warning(s)\n"
msg_body_02="\n\n--- ERROR(S) ---\n${err_msg}\n\n--- WARNING(S) ...\n${warn_msg}"
msg="${msg_top}\n${msg_body_01}\n${msg_body_02}"
subject="Borg Backup Errors at ${host_name} -- ${datum}"
subject_utf8="$(echo "${subject}" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo ${subject_utf8} | base64 --wrap=0)?="
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
echo_ok
fi
if [[ -n "${ADMIN_EXTRA_EMAIL}" ]] ; then
echo -e "To:${ADMIN_EXTRA_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EXTRA_EMAIL} > ${log_file} 2>&1
# Send Error Message
#
if $terminal ; then
echo -e -n " Send Error Message to ${ADMIN_EMAIL}.."
fi
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
echo_ok
fi
fi
blank_line
fi
blank_line
echononl "Create temporary logorotate configuration file 'logrotate_borg.conf'.."
cat << EOF > ${LOCK_DIR}/logrotate_borg.conf 2> ${log_file}

View File

@ -666,51 +666,105 @@ durationReadable=$(printf "%02d hours %02d minutes %02d seconds" $durationHour $
echo -e "\n\n###### Server backup finished on ${endDateReadable} (${durationReadable}) ######\n" >> ${BORG_LOG_FILE}
blank_line
# Send Summery
# Error Handling
#
if $terminal ; then
declare -i error=$(grep -i -e"\[\s*ERROR" ${BORG_LOG_FILE} | wc -l)
declare -i warning=$(grep -i -e"\[\s*WARN" ${BORG_LOG_FILE} | wc -l)
if [ $error -gt 0 -o $warning -gt 0 ] ; then
# Send Summery
#
if $terminal ; then
echo -e -n " Send Summary.."
fi
fi
datum="$(date +"%d.%m.%Y %H:%M")"
datum="$(date +"%d.%m.%Y %H:%M")"
filesystem_usage="$(df -h)"
filesystem_usage="$(df -h)"
msg_head_line="\n\n# ---\n# Server backup finished on ${endDateReadable} (${durationReadable})\n# ---\n\n"
msg_head_line="\n\n# ---\n# Server backup finished on ${endDateReadable} (${durationReadable})\n# ---\n\n"
msg="$(cat "${BORG_LOG_FILE}")"
msg="$(cat "${BORG_LOG_FILE}")"
datum="$(date +"%d.%m.%Y")"
datum="$(date +"%d.%m.%Y")"
content_type='Content-Type: text/plain;\n charset="utf-8"'
content_type='Content-Type: text/plain;\n charset="utf-8"'
subject="Borg Backup - ${COMPANY} - ${datum}"
subject_utf8="$(echo "$subject" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?="
subject="Borg Backup - ${COMPANY} - ${datum}"
subject_utf8="$(echo "$subject" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?="
cat <<EOF >> ${BORG_LOG_FILE}
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n\${filesystem_usage}\n\${msg_head_line}\n\${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL}
EOF
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${filesystem_usage}\n${msg_head_line}\n${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${filesystem_usage}\n${msg_head_line}\n${msg}\n" | /usr/sbin/sendmail -F "BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
if [[ $? -gt 0 ]] ; then
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
else
echo_ok
fi
blank_line
# Send Error Message
#
if $terminal ; then
echo -e -n " Send Error Message to ${ADMIN_EMAIL}.."
fi
err_msg="$(grep -A 2 -i -e"\[\s*ERROR" ${BORG_LOG_FILE})\n"
warn_msg="$(grep -A 2 -i -e"\[\s*WARN" ${BORG_LOG_FILE})\n"
msg_top="Borg Backup Error ${COMPANY} vom ${datum}.\nBorg Backup on '$(hostname -f)' beendet mit:"
msg_body_01="\t${error} Error(s)\n\t${warning} Warning(s)\n"
msg_body_02="\n\n--- ERROR(S) ---\n${err_msg}\n\n--- WARNING(S) ...\n${warn_msg}"
msg="${msg_top}\n${msg_body_01}\n${msg_body_02}"
subject="Borg Backup Errors at ${host_name} -- ${datum}"
subject_utf8="$(echo "${subject}" | iconv -t UTF8)"
subject_utf8_encoded="=?utf-8?B?$(echo ${subject_utf8} | base64 --wrap=0)?="
echo -e "To:${ADMIN_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
echo_ok
fi
if [[ -n "${ADMIN_EXTRA_EMAIL}" ]] ; then
echo -e "To:${ADMIN_EXTRA_EMAIL}\n${content_type}\nSubject:${subject_utf8_encoded}\n${msg}\n" | /usr/sbin/sendmail -F "Errors Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EXTRA_EMAIL} > ${log_file} 2>&1
# Send Error Message
#
if $terminal ; then
echo -e -n " Send Error Message to ${ADMIN_EMAIL}.."
fi
if [[ $? -gt 0 ]] ; then
echo_failed
error "$(cat "${log_file}")"
else
echo_ok
fi
fi
blank_line
fi
blank_line
echononl "Create temporary logorotate configuration file 'logrotate_borg.conf'.."
cat << EOF > ${LOCK_DIR}/logrotate_borg.conf 2> ${log_file}

View File

@ -161,6 +161,15 @@
#ADMIN_EMAIL="root"
# ADMIN_EXTRA_EMAIL
#
# Send Informations about the backup process also to this e-mail address
#
# Defaults to empty string (NOT SET)
#
#ADMIN_EXTRA_EMAIL=""
# FROM_ADDRESS
#
# Defaults to:

View File

@ -197,6 +197,15 @@
#ADMIN_EMAIL="root"
# ADMIN_EXTRA_EMAIL
#
# Send Informations about the backup process also to this e-mail address
#
# Defaults to empty string (NOT SET)
#
#ADMIN_EXTRA_EMAIL=""
# FROM_ADDRESS
#
# Defaults to: