fad4bd2425419929bd9e6e1d5eb428fd02844eb8
- Author
- zertrin <zertrin@gmail.com>
- Committer
- zertrin <zertrin@gmail.com>
- Date
Message
Diff
This diff is truncated to protect this page.
1diff --git a/duplicity-backup.sh b/duplicity-backup.sh
2index ef7aa12db76448a8c4823015d68a82e645daedb3..dd9c5a525887704cb110f3abab0d936c43f14903 100755
3--- a/duplicity-backup.sh
4+++ b/duplicity-backup.sh
5@@ -336,47 +336,82 @@ check_logdir()
6 fi
7 }
8
9+mailcmd_sendmail() {
10+ # based on http://linux.die.net/man/8/sendmail.sendmail
11+ echo -e "From: ${EMAIL_FROM}\nSubject: ${EMAIL_SUBJECT}\n" | cat - "${LOGFILE}" | ${MAILCMD} "${EMAIL_TO}"
12+}
13+mailcmd_ssmtp() {
14+ # based on http://linux.die.net/man/8/ssmtp
15+ echo -e "From: ${EMAIL_FROM}\nSubject: ${EMAIL_SUBJECT}\n" | cat - "${LOGFILE}" | ${MAILCMD} "${EMAIL_TO}"
16+}
17+mailcmd_msmtp() {
18+ # based on http://manpages.ubuntu.com/manpages/precise/en/man1/msmtp.1.html
19+ echo -e "Subject: ${EMAIL_SUBJECT}\n" | cat - "${LOGFILE}" | ${MAILCMD} -f "${EMAIL_FROM}" -- "${EMAIL_TO}"
20+}
21+mailcmd_bsd_mailx() {
22+ # based on http://man.he.net/man1/bsd-mailx
23+ ${MAILCMD} -s "${EMAIL_SUBJECT}" -a "From: ${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
24+}
25+mailcmd_heirloom_mailx() {
26+ # based on http://heirloom.sourceforge.net/mailx/mailx.1.html
27+ ${MAILCMD} -s "${EMAIL_SUBJECT}" -S from="${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
28+}
29+mailcmd_nail() {
30+ # based on http://linux.die.net/man/1/nail
31+ ${MAILCMD} -s "${EMAIL_SUBJECT}" -r "${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
32+}
33+mailcmd_else() {
34+ mailcmd_sendmail
35+}
36+
37 email_logfile()
38 {
39 if [ ! -z "${EMAIL_TO}" ]; then
40+
41 MAILCMD=$(which "${MAIL}")
42+ MAILCMD_REALPATH=$(readlink -e "${MAILCMD}")
43+ MAILCMD_BASENAME=${MAILCMD_REALPATH##*/}
44+
45 if [ ! -x "${MAILCMD}" ]; then
46 echo -e "Email couldn't be sent. ${MAIL} not available." >> "${LOGFILE}"
47 else
48- EMAIL_SUBJECT=${EMAIL_SUBJECT:="duplicity-backup alert ${LOG_FILE}"}
49- if [ "${MAIL}" = "ssmtp" ]; then
50- echo """Subject: ${EMAIL_SUBJECT}""" | cat - "${LOGFILE}" | ${MAILCMD} -s "${EMAIL_TO}"
51- elif [ "${MAIL}" = "msmtp" ]; then
52- echo """Subject: ${EMAIL_SUBJECT}""" | cat - "${LOGFILE}" | ${MAILCMD} "${EMAIL_TO}"
53- elif [ "${MAIL}" = "mailx" ]; then
54- EMAIL_FROM=${EMAIL_FROM:+"-r ${EMAIL_FROM}"}
55- ${MAILCMD} -s """${EMAIL_SUBJECT}""" "${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
56- elif [ "${MAIL}" = "mail" ]; then
57- case $(uname) in
58- FreeBSD|Darwin|DragonFly|OpenBSD)
59- ${MAILCMD} -s """${EMAIL_SUBJECT}""" "${EMAIL_TO}" -- < "${LOGFILE}"
60- ;;
61- *)
62- ${MAILCMD} -s """${EMAIL_SUBJECT}""" "${EMAIL_FROM}" "${EMAIL_TO}" -- -f "${EMAIL_FROM}" < "${LOGFILE}"
63- ;;
64- esac
65- elif [[ "${MAIL}" = "sendmail" ]]; then
66- (echo """Subject: ${EMAIL_SUBJECT}""" ; cat "${LOGFILE}") | ${MAILCMD} -f "${EMAIL_FROM}" "${EMAIL_TO}"
67- elif [ "${MAIL}" = "nail" ]; then
68- ${MAILCMD} -s """${EMAIL_SUBJECT}""" "${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
69- else
70- ${MAILCMD} """${EMAIL_SUBJECT}""" "${EMAIL_FROM}" "${EMAIL_TO}" < "${LOGFILE}"
71- fi
72- echo -e "Email alert sent to ${EMAIL_TO} using ${MAIL}" >> "${LOGFILE}"
73+ EMAIL_SUBJECT=${EMAIL_SUBJECT:="duplicity-backup ${BACKUP_STATUS:-"ERROR"} [${HOSTNAME}] ${LOG_FILE}"}
74+ case ${MAIL} in
75+ ssmtp)
76+ mailcmd_ssmtp;;
77+ msmtp)
78+ mailcmd_msmtp;;
79+ mail|mailx)
80+ case ${MAILCMD_BASENAME} in
81+ bsd-mailx)
82+ mailcmd_bsd_mailx;;
83+ heirloom-mailx)
84+ mailcmd_heirloom_mailx;;
85+ *)
86+ mailcmd_else;;
87+ esac
88+ ;;
89+ sendmail)
90+ mailcmd_sendmail;;
91+ nail)
92+ mailcmd_nail;;
93+ *)
94+ mailcmd_else;;
95+ esac
96+
97+ echo -e "Email notification sent to ${EMAIL_TO} using ${MAIL}" >> "${LOGFILE}"
98 fi
99 fi
100 }
101
102 send_notification()
103 {
104+ NOTIFICATION_CONTENT="duplicity-backup ${BACKUP_STATUS:-"ERROR"} [${HOSTNAME}] - \`${LOGFILE}\`"