diff --git a/borg2-backup-nc.sh b/borg2-backup-nc.sh index 2608975..6dc70ae 100755 --- a/borg2-backup-nc.sh +++ b/borg2-backup-nc.sh @@ -758,11 +758,11 @@ subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?=" cat <> ${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} +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 "Borg 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 "Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1 if [[ $? -gt 0 ]] ; then @@ -774,6 +774,68 @@ fi blank_line +# Error Handling +# +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 Error Message + # + if $terminal ; then + echo -e -n " Send Error Message to ${ADMIN_EMAIL}.." + fi + + host_name="$(hostname -f)" + + 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 '${host_name}' 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="Borg Backup Errors at ${host_name}" + 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} diff --git a/borg2-backup.sh b/borg2-backup.sh index 6ca34af..274d105 100755 --- a/borg2-backup.sh +++ b/borg2-backup.sh @@ -730,11 +730,11 @@ subject_utf8_encoded="=?utf-8?B?$(echo $subject_utf8 | base64 --wrap=0)?=" cat <> ${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} +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 "Borg 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 "Borg BACKUP ${COMPANY}" -f ${FROM_ADDRESS} ${ADMIN_EMAIL} > ${log_file} 2>&1 if [[ $? -gt 0 ]] ; then @@ -746,6 +746,71 @@ fi blank_line +# Error Handling +# +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 Error Message + # + if $terminal ; then + echo -e -n " Send Error Message to ${ADMIN_EMAIL}.." + fi + + #ADMIN_EMAIL="ckubu@oopen.de" + + host_name="$(hostname -f)" + + 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 '${host_name}' 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="Borg Backup Errors at ${host_name}" + 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} diff --git a/conf/borg2-backup-nc.conf.sample b/conf/borg2-backup-nc.conf.sample index cb9ca0e..cf97c44 100644 --- a/conf/borg2-backup-nc.conf.sample +++ b/conf/borg2-backup-nc.conf.sample @@ -205,6 +205,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: diff --git a/conf/borg2-backup.conf.sample b/conf/borg2-backup.conf.sample index 8f93606..89c4ced 100644 --- a/conf/borg2-backup.conf.sample +++ b/conf/borg2-backup.conf.sample @@ -242,6 +242,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: