aboutsummaryrefslogtreecommitdiff
path: root/backup.in
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2012-05-30 13:41:09 +0300
committerSergey Poznyakoff <gray@gnu.org.ua>2012-05-30 13:43:25 +0300
commitfbea83e22332724c7bff2f0a67dde810476f004b (patch)
treebebc165d9f6876cf156580d71c1a990e800cfb7a /backup.in
parentd669127d2efaf9969b081fbaff47ff8938388750 (diff)
downloadbeam-fbea83e22332724c7bff2f0a67dde810476f004b.tar.gz
beam-fbea83e22332724c7bff2f0a67dde810476f004b.tar.bz2
Implement mail notification.
* backup.in (backup): New function. Send mail notification if backup_notify_email is not empty. * lib/beam/common.in (mail_report): New function. * beam.conf: Provide examples for the new variables. * beam.in: Fix typos. * doc/beam.conf.5in: Document new variables.
Diffstat (limited to 'backup.in')
-rw-r--r--backup.in69
1 files changed, 45 insertions, 24 deletions
diff --git a/backup.in b/backup.in
index 983fd72..cbc9f08 100644
--- a/backup.in
+++ b/backup.in
@@ -95,32 +95,53 @@ do
shift
done
-if [ -n "$backup_logfile" ]; then
- exec >>$backup_logfile
- exec 2>&1
-fi
-logit "started"
-
-if test -n "$backup_retain_interval" && test $backup_retain_interval -gt 0; then
- @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
- --suffix .tar.bz2 $backup_archive_dir
- @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
- --suffix .db $backup_snapshot_dir
-fi
-
-runhook prologue_hook
-trap "runhook epilogue_hook" EXIT INT QUIT TERM
-
-for item in $backup_items
-do
- eval type=\$${item}_type
- ${type}_backup $item
-done
+backup() {
+ logit "started"
+
+ if test -n "$backup_retain_interval" &&
+ test $backup_retain_interval -gt 0; then
+ @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
+ --suffix .tar.bz2 $backup_archive_dir
+ @LIBEXECDIR@/beam-cleaner --retain $backup_retain_interval $verbose \
+ --suffix .db $backup_snapshot_dir
+ fi
+
+ runhook prologue_hook
+ trap "runhook epilogue_hook" EXIT INT QUIT TERM
+
+ for item in $backup_items
+ do
+ eval type=\$${item}_type
+ ${type}_backup $item
+ done
+
+ trap - EXIT INT QUIT TERM
+ runhook epilogue_hook
+
+ logit "finished"
+}
-trap - EXIT INT QUIT TERM
-runhook epilogue_hook
+if [ -z "$backup_notify_email" ]; then
+ if [ -n "$backup_logfile" ]; then
+ exec >>$backup_logfile
+ exec 2>&1
+ fi
+ backup
+else
+ u=$(umask)
+ umask 077
+ report=$backup_snapshot_dir/report.$$
+ touch $report
+ umask $u
+ if [ -n "$backup_logfile" ]; then
+ ( exec 2>&1; backup ) | tee $report >> $backup_logfile
+ else
+ ( exec 2>&1; backup ) | tee $report
+ fi
+ mail_report $report
+ rm $report
+fi
-logit "finished"
# finis coronat opus

Return to:

Send suggestions and report system problems to the System administrator.