feat: support email notification when backup succeeds and fails
This commit is contained in:
@@ -94,6 +94,11 @@ function upload() {
|
||||
rclone copy ${UPLOAD_FILE} ${RCLONE_REMOTE}
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "upload failed"
|
||||
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" && "${MAIL_WHEN_FAILURE}" == "TRUE" ]]; then
|
||||
send_mail "BitwardenRS Backup Failed" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S")."
|
||||
fi
|
||||
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
@@ -128,4 +133,8 @@ upload
|
||||
clear_dir
|
||||
clear_history
|
||||
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" && "${MAIL_WHEN_SUCCESS}" == "TRUE" ]]; then
|
||||
send_mail "BitwardenRS Backup Success" "The file was successfully uploaded at $(date +"%Y-%m-%d %H:%M:%S")."
|
||||
fi
|
||||
|
||||
color none ""
|
||||
|
||||
@@ -9,6 +9,22 @@ if [[ "$1" == "rclone" ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# mailx test
|
||||
if [[ "$1" == "mail" ]]; then
|
||||
MAIL_SMTP_ENABLE="TRUE"
|
||||
MAIL_DEBUG="TRUE"
|
||||
|
||||
if [[ -n "$2" ]]; then
|
||||
MAIL_TO="$2"
|
||||
fi
|
||||
|
||||
init_env
|
||||
|
||||
send_mail "BitwardenRS Backup Test" "Your SMTP looks configured correctly."
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
function configure_cron() {
|
||||
echo "${CRON} sh /app/backup.sh > /dev/stdout" >> /etc/crontabs/root
|
||||
}
|
||||
|
||||
@@ -32,6 +32,27 @@ function check_rclone_connection() {
|
||||
fi
|
||||
}
|
||||
|
||||
########################################
|
||||
# Send mail by mailx.
|
||||
# Arguments:
|
||||
# mail subject
|
||||
# mail content
|
||||
# Outputs:
|
||||
# send mail result
|
||||
########################################
|
||||
function send_mail() {
|
||||
if [[ "${MAIL_DEBUG}" == "TRUE" ]]; then
|
||||
local MAIL_VERBOSE="-v"
|
||||
fi
|
||||
|
||||
echo "$2" | mailx ${MAIL_VERBOSE} -s "$1" ${MAIL_SMTP_VARIABLES} ${MAIL_TO}
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "mail sending failed"
|
||||
else
|
||||
color blue "mail send was successfully"
|
||||
fi
|
||||
}
|
||||
|
||||
########################################
|
||||
# Initialization environment variables.
|
||||
# Arguments:
|
||||
@@ -80,6 +101,31 @@ function init_env() {
|
||||
BACKUP_KEEP_DAYS="${BACKUP_KEEP_DAYS_DEFAULT}"
|
||||
fi
|
||||
|
||||
# MAIL_SMTP_ENABLE
|
||||
# MAIL_TO
|
||||
MAIL_SMTP_ENABLE=$(echo "${MAIL_SMTP_ENABLE}" | tr '[a-z]' '[A-Z]')
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" && -n "${MAIL_TO}" ]]; then
|
||||
MAIL_SMTP_ENABLE="TRUE"
|
||||
else
|
||||
MAIL_SMTP_ENABLE="FALSE"
|
||||
fi
|
||||
|
||||
# MAIL_WHEN_SUCCESS
|
||||
MAIL_WHEN_SUCCESS=$(echo "${MAIL_WHEN_SUCCESS}" | tr '[a-z]' '[A-Z]')
|
||||
if [[ "${MAIL_WHEN_SUCCESS}" == "FALSE" ]]; then
|
||||
MAIL_WHEN_SUCCESS="FALSE"
|
||||
else
|
||||
MAIL_WHEN_SUCCESS="TRUE"
|
||||
fi
|
||||
|
||||
# MAIL_WHEN_FAILURE
|
||||
MAIL_WHEN_FAILURE=$(echo "${MAIL_WHEN_FAILURE}" | tr '[a-z]' '[A-Z]')
|
||||
if [[ "${MAIL_WHEN_FAILURE}" == "FALSE" ]]; then
|
||||
MAIL_WHEN_FAILURE="FALSE"
|
||||
else
|
||||
MAIL_WHEN_FAILURE="TRUE"
|
||||
fi
|
||||
|
||||
color yellow "========================================"
|
||||
color yellow "CRON: ${CRON}"
|
||||
color yellow "RCLONE_REMOTE_NAME: ${RCLONE_REMOTE_NAME}"
|
||||
@@ -88,5 +134,11 @@ function init_env() {
|
||||
color yellow "ZIP_ENABLE: ${ZIP_ENABLE}"
|
||||
color yellow "ZIP_PASSWORD: ${#ZIP_PASSWORD} Chars"
|
||||
color yellow "BACKUP_KEEP_DAYS: ${BACKUP_KEEP_DAYS}"
|
||||
color yellow "MAIL_SMTP_ENABLE: ${MAIL_SMTP_ENABLE}"
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" ]]; then
|
||||
color yellow "MAIL_TO: ${MAIL_TO}"
|
||||
color yellow "MAIL_WHEN_SUCCESS: ${MAIL_WHEN_SUCCESS}"
|
||||
color yellow "MAIL_WHEN_FAILURE: ${MAIL_WHEN_FAILURE}"
|
||||
fi
|
||||
color yellow "========================================"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user