diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-05-30 13:41:09 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2012-05-30 13:43:25 +0300 |
commit | fbea83e22332724c7bff2f0a67dde810476f004b (patch) | |
tree | bebc165d9f6876cf156580d71c1a990e800cfb7a /backup.in | |
parent | d669127d2efaf9969b081fbaff47ff8938388750 (diff) | |
download | beam-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.in | 69 |
1 files changed, 45 insertions, 24 deletions
@@ -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 |