feat: improve notification method
This commit is contained in:
1 parent
d237985df1
commit
3de4f98d24
2 files changed
+50
-41
No files matched your search
+6
-16
@@ -43,9 +43,7 @@ function backup_db_postgresql() {
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "backup vaultwarden postgresql database failed"
|
||||
|
||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
||||
send_ping "${PING_URL}" "completion"
|
||||
send_mail_content "FALSE" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup postgresql database failed."
|
||||
send_notification "failure" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup postgresql database failed."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
@@ -58,9 +56,7 @@ function backup_db_mysql() {
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "backup vaultwarden mysql database failed"
|
||||
|
||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
||||
send_ping "${PING_URL}" "completion"
|
||||
send_mail_content "FALSE" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup mysql database failed."
|
||||
send_notification "failure" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup mysql database failed."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
@@ -167,9 +163,7 @@ function upload() {
|
||||
if [[ ! -e "${UPLOAD_FILE}" ]]; then
|
||||
color red "upload file not found"
|
||||
|
||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
||||
send_ping "${PING_URL}" "completion"
|
||||
send_mail_content "FALSE" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Upload file not found."
|
||||
send_notification "failure" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Upload file not found."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
@@ -190,9 +184,7 @@ function upload() {
|
||||
done
|
||||
|
||||
if [[ "${HAS_ERROR}" == "TRUE" ]]; then
|
||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
||||
send_ping "${PING_URL}" "completion"
|
||||
send_mail_content "FALSE" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
||||
send_notification "failure" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
||||
|
||||
exit 1
|
||||
fi
|
||||
@@ -223,7 +215,7 @@ color blue "running the backup program at $(date +"%Y-%m-%d %H:%M:%S %Z")"
|
||||
|
||||
init_env
|
||||
|
||||
send_ping "${PING_URL_WHEN_START}" "start"
|
||||
send_notification "start" "Start backup at $(date +"%Y-%m-%d %H:%M:%S %Z")"
|
||||
|
||||
check_rclone_connection
|
||||
|
||||
@@ -235,8 +227,6 @@ upload
|
||||
clear_dir
|
||||
clear_history
|
||||
|
||||
send_mail_content "TRUE" "The file was successfully uploaded at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
||||
send_ping "${PING_URL}" "completion"
|
||||
send_ping "${PING_URL_WHEN_SUCCESS}" "success"
|
||||
send_notification "success" "The file was successfully uploaded at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
||||
|
||||
color none ""
|
||||
+44
-25
@@ -102,28 +102,6 @@ function send_mail() {
|
||||
fi
|
||||
}
|
||||
|
||||
########################################
|
||||
# Send mail.
|
||||
# Arguments:
|
||||
# backup successful
|
||||
# mail content
|
||||
########################################
|
||||
function send_mail_content() {
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "FALSE" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# successful
|
||||
if [[ "$1" == "TRUE" && "${MAIL_WHEN_SUCCESS}" == "TRUE" ]]; then
|
||||
send_mail "vaultwarden Backup Success" "$2"
|
||||
fi
|
||||
|
||||
# failed
|
||||
if [[ "$1" == "FALSE" && "${MAIL_WHEN_FAILURE}" == "TRUE" ]]; then
|
||||
send_mail "vaultwarden Backup Failed" "$2"
|
||||
fi
|
||||
}
|
||||
|
||||
########################################
|
||||
# Send health check or notification ping.
|
||||
# Arguments:
|
||||
@@ -153,16 +131,57 @@ function send_ping() {
|
||||
CURL_OPTIONS=$(echo "${CURL_OPTIONS}" | sed "s/%{subject}/$2/g")
|
||||
CURL_OPTIONS=$(echo "${CURL_OPTIONS}" | sed "s/%{content}/$3/g")
|
||||
|
||||
local CURL_COMMAND="curl -m 15 --retry 10 --retry-delay 3 -o /dev/null -s${CURL_OPTIONS:+" ${CURL_OPTIONS}"} ${CURL_URL}"
|
||||
local CURL_COMMAND="curl -m 15 --retry 10 --retry-delay 1 -o /dev/null -s${CURL_OPTIONS:+" ${CURL_OPTIONS}"} \"${CURL_URL}\""
|
||||
|
||||
if [[ "${PING_DEBUG}" == "TRUE" ]]; then
|
||||
color yellow "curl command: ${CURL_COMMAND}"
|
||||
fi
|
||||
|
||||
eval "${CURL_COMMAND}"
|
||||
if [[ $? != 0 ]]; then
|
||||
color red "$2 ping sending has failed"
|
||||
color red "$1 ping sending has failed"
|
||||
else
|
||||
color blue "$2 ping has been sent successfully"
|
||||
color blue "$1 ping has been sent successfully"
|
||||
fi
|
||||
}
|
||||
|
||||
########################################
|
||||
# Send notification.
|
||||
# Arguments:
|
||||
# status (start / success / failure)
|
||||
# notification content
|
||||
########################################
|
||||
function send_notification() {
|
||||
local SUBJECT_START="vaultwarden Backup Start"
|
||||
local SUBJECT_SUCCESS="vaultwarden Backup Success"
|
||||
local SUBJECT_FAILURE="vaultwarden Backup Failed"
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
// ping
|
||||
send_ping "start" "${SUBJECT_START}" "$2"
|
||||
;;
|
||||
success)
|
||||
// mail
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" && "${MAIL_WHEN_SUCCESS}" == "TRUE" ]]; then
|
||||
send_mail "${SUBJECT_SUCCESS}" "$2"
|
||||
fi
|
||||
// ping
|
||||
send_ping "success" "${SUBJECT_SUCCESS}" "$2"
|
||||
send_ping "completion" "${SUBJECT_SUCCESS}" "$2"
|
||||
;;
|
||||
failure)
|
||||
// mail
|
||||
if [[ "${MAIL_SMTP_ENABLE}" == "TRUE" && "${MAIL_WHEN_FAILURE}" == "TRUE" ]]; then
|
||||
send_mail "${SUBJECT_FAILURE}" "$2"
|
||||
fi
|
||||
// ping
|
||||
send_ping "failure" "${SUBJECT_FAILURE}" "$2"
|
||||
send_ping "completion" "${SUBJECT_FAILURE}" "$2"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
########################################
|
||||
# Configure PostgreSQL password file.
|
||||
# Arguments:
|
||||
|
||||
Reference in new issue
Block a user