Diff
1diff --git a/duplicity-backup.conf.example b/duplicity-backup.conf.example
2index ca2e0aebe4fef837406cd0c754be32285d065f5f..16bc6b2139ecb85095b6e1afa1bda8786a787551 100644
3--- a/duplicity-backup.conf.example
4+++ b/duplicity-backup.conf.example
5@@ -77,6 +77,10 @@
6 #
7 ROOT="/home"
8
9+# Set hostname for this duplicity instance, usefull for e-mail reports
10+#
11+HOSTNAME=$(hostname -f)
12+
13 # ------------------------------------------------------------------------------
14 # BACKUP DESTINATION INFORMATION
15 # ------------------------------------------------------------------------------
16@@ -371,6 +375,7 @@ VERBOSITY="-v3"
17 EMAIL_TO=
18 EMAIL_FROM=
19 EMAIL_SUBJECT=
20+EMAIL_FAILURE_ONLY="yes" # send e-mail only if there was an error while creating backup
21
22 # command to use to send mail
23 MAIL="mailx" # default command for Linux mail
24diff --git a/duplicity-backup.sh b/duplicity-backup.sh
25index 2c6c9c09b2d72303324a579bd214d28de12e8028..699c590601711e4a2fdc4d8249614b86a162f22a 100755
26--- a/duplicity-backup.sh
27+++ b/duplicity-backup.sh
28@@ -540,29 +540,41 @@ duplicity_cleanup()
29 {
30 echo "----------------[ Duplicity Cleanup ]----------------" >> ${LOGFILE}
31 if [[ "${CLEAN_UP_TYPE}" != "none" && ! -z ${CLEAN_UP_TYPE} && ! -z ${CLEAN_UP_VARIABLE} ]]; then
32- eval ${ECHO} ${DUPLICITY} ${CLEAN_UP_TYPE} ${CLEAN_UP_VARIABLE} ${STATIC_OPTIONS} --force \
33- ${ENCRYPT} \
34- ${DEST} >> ${LOGFILE}
35+ {
36+ eval ${ECHO} ${DUPLICITY} ${CLEAN_UP_TYPE} ${CLEAN_UP_VARIABLE} ${STATIC_OPTIONS} --force \
37+ ${ENCRYPT} \
38+ ${DEST} >> ${LOGFILE}
39+ } || {
40+ BACKUP_ERROR=1
41+ }
42 echo >> ${LOGFILE}
43 fi
44 if [ ! -z ${REMOVE_INCREMENTALS_OLDER_THAN} ] && [[ ${REMOVE_INCREMENTALS_OLDER_THAN} =~ ^[0-9]+$ ]]; then
45- eval ${ECHO} ${DUPLICITY} remove-all-inc-of-but-n-full ${REMOVE_INCREMENTALS_OLDER_THAN} \
46- ${STATIC_OPTIONS} --force \
47- ${ENCRYPT} \
48- ${DEST} >> ${LOGFILE}
49+ {
50+ eval ${ECHO} ${DUPLICITY} remove-all-inc-of-but-n-full ${REMOVE_INCREMENTALS_OLDER_THAN} \
51+ ${STATIC_OPTIONS} --force \
52+ ${ENCRYPT} \
53+ ${DEST} >> ${LOGFILE}
54+ } || {
55+ BACKUP_ERROR=1
56+ }
57 echo >> ${LOGFILE}
58 fi
59 }
60
61 duplicity_backup()
62 {
63- eval ${ECHO} ${DUPLICITY} ${OPTION} ${VERBOSITY} ${STATIC_OPTIONS} \
64- ${ENCRYPT} \
65- ${EXCLUDE} \
66- ${INCLUDE} \
67- ${EXCLUDEROOT} \
68- ${ROOT} ${DEST} \
69- >> ${LOGFILE}
70+ {
71+ eval ${ECHO} ${DUPLICITY} ${OPTION} ${VERBOSITY} ${STATIC_OPTIONS} \
72+ ${ENCRYPT} \
73+ ${EXCLUDE} \
74+ ${INCLUDE} \
75+ ${EXCLUDEROOT} \
76+ ${ROOT} ${DEST} \
77+ >> ${LOGFILE}
78+ } || {
79+ BACKUP_ERROR=1
80+ }
81 }
82
83 setup_passphrase()
84@@ -680,7 +692,7 @@ backup_this_script()
85 check_variables
86 check_logdir
87
88-echo -e "-------- START DUPLICITY-BACKUP SCRIPT --------\n" >> ${LOGFILE}
89+echo -e "-------- START DUPLICITY-BACKUP SCRIPT for ${HOSTNAME} --------\n" >> ${LOGFILE}
90
91 get_lock
92
93@@ -832,7 +844,20 @@ esac
94
95 echo -e "--------- END DUPLICITY-BACKUP SCRIPT ---------\n" >> ${LOGFILE}
96
97-email_logfile
98+if [ ${EMAIL_FAILURE_ONLY} == "yes" ]
99+then
100+ if [ ${BACKUP_ERROR} ]; then
101+ EMAIL_SUBJECT="BACKUP ERROR: ${EMAIL_SUBJECT}"
102+ email_logfile
103+ fi
104+else
105+ if [ ${BACKUP_ERROR} ]; then
106+ EMAIL_SUBJECT="BACKUP ERROR: ${EMAIL_SUBJECT}"
107+ else
108+ EMAIL_SUBJECT="BACKUP OK: ${EMAIL_SUBJECT}"
109+ fi
110+ email_logfile
111+fi
112
113 # remove old logfiles
114 # stops them from piling up infinitely