#!/bin/sh # Run the backup and mail the logs # Set TEST_SMTP=1 to run in SMTP testing mode, which will just send an email set -o pipefail # Set up environment /bin/sh /scripts/msmtprc.sh /bin/sh /scripts/env.sh BACKUP_COMMAND="borgmatic --stats -v 2" LOGFILE="/tmp/backup_run_$(date +%s).log" SUCCESS_PREFIX="=?utf-8?Q? =E2=9C=85 SUCCESS?=" FAILED_PREFIX="=?utf-8?Q? =E2=9D=8C FAILED?=" report() { if [ -n "$SUCCESS" ]; then PREFIX="$SUCCESS_PREFIX" else PREFIX="$FAILED_PREFIX" fi echo -e "Subject: $PREFIX: $MAIL_SUBJECT\n\n$(cat $LOGFILE)\n" | sendmail -t "$MAIL_TO" } testmail() { echo -e "Subject: TESTING!\n\ntest mail, please ignore\n" | sendmail -t "$MAIL_TO" } failed() { echo "Exited abnormally!" report rm -f "$LOGFILE" } cleanup() { borgmatic break-lock echo "Done, removing $LOGFILE" rm -f "$LOGFILE" } # Handle various kinds of exit trap failed INT QUIT KILL trap cleanup EXIT if [ -n "$TEST_SMTP" ]; then echo "Testing mail to $MAIL_TO" testmail echo "Done." exit fi if $BACKUP_COMMAND 2>&1 | tee "$LOGFILE"; then SUCCESS=1 report fi