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
|
if [[ $? != 0 ]]; then
|
||||||
color red "backup vaultwarden postgresql database failed"
|
color red "backup vaultwarden postgresql database failed"
|
||||||
|
|
||||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
send_notification "failure" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup postgresql database failed."
|
||||||
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."
|
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -58,9 +56,7 @@ function backup_db_mysql() {
|
|||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
color red "backup vaultwarden mysql database failed"
|
color red "backup vaultwarden mysql database failed"
|
||||||
|
|
||||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
send_notification "failure" "Backup failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Backup mysql database failed."
|
||||||
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."
|
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -167,9 +163,7 @@ function upload() {
|
|||||||
if [[ ! -e "${UPLOAD_FILE}" ]]; then
|
if [[ ! -e "${UPLOAD_FILE}" ]]; then
|
||||||
color red "upload file not found"
|
color red "upload file not found"
|
||||||
|
|
||||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
send_notification "failure" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z"). Reason: Upload file not found."
|
||||||
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."
|
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -190,9 +184,7 @@ function upload() {
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [[ "${HAS_ERROR}" == "TRUE" ]]; then
|
if [[ "${HAS_ERROR}" == "TRUE" ]]; then
|
||||||
send_ping "${PING_URL_WHEN_FAILURE}" "failure"
|
send_notification "failure" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
||||||
send_ping "${PING_URL}" "completion"
|
|
||||||
send_mail_content "FALSE" "File upload failed at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -223,7 +215,7 @@ color blue "running the backup program at $(date +"%Y-%m-%d %H:%M:%S %Z")"
|
|||||||
|
|
||||||
init_env
|
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
|
check_rclone_connection
|
||||||
|
|
||||||
@@ -235,8 +227,6 @@ upload
|
|||||||
clear_dir
|
clear_dir
|
||||||
clear_history
|
clear_history
|
||||||
|
|
||||||
send_mail_content "TRUE" "The file was successfully uploaded at $(date +"%Y-%m-%d %H:%M:%S %Z")."
|
send_notification "success" "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"
|
|
||||||
|
|
||||||
color none ""
|
color none ""
|
||||||
+44
-25
@@ -102,28 +102,6 @@ function send_mail() {
|
|||||||
fi
|
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.
|
# Send health check or notification ping.
|
||||||
# Arguments:
|
# 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/%{subject}/$2/g")
|
||||||
CURL_OPTIONS=$(echo "${CURL_OPTIONS}" | sed "s/%{content}/$3/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}"
|
eval "${CURL_COMMAND}"
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
color red "$2 ping sending has failed"
|
color red "$1 ping sending has failed"
|
||||||
else
|
else
|
||||||
color blue "$2 ping has been sent successfully"
|
color blue "$1 ping has been sent successfully"
|
||||||
fi
|
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.
|
# Configure PostgreSQL password file.
|
||||||
# Arguments:
|
# Arguments:
|
||||||
|
|||||||
Reference in new issue
Block a user