commit eb4d19edf5a17cc6bd8bd6816eeeaaa42a32a29c
parent 80b96bc759618dc24ee92d34c590b6ad15e65bf8
Author: Andrew Laack <andrew@laack.co>
Date: Tue, 7 Apr 2026 12:21:48 -0500
Renamed email script, send emails on backup finish
Diffstat:
3 files changed, 80 insertions(+), 62 deletions(-)
diff --git a/backup.sh b/backup.sh
@@ -3,9 +3,15 @@ set -o pipefail
mkdir -p ~/logs
+# have to do this because cron
+source ~/.bashrc
+
if ~/bin/backups/simple.sh | tee ~/logs/backup.log 2>&1; then
echo "PASS: Backup Success" | tee -a ~/logs/backup.log
+ echo "PASS: Backup Success" | email-send.sh
date | tee -a ~/logs/backup-times.txt
else
echo "FAIL: Backup Failed" | tee -a ~/logs/backup.log
+ echo "FAIL: Backup Failed" | email-send.sh
fi
+
diff --git a/email/email-self.sh b/email/email-self.sh
@@ -1,62 +0,0 @@
-#!/bin/bash
-set -euo pipefail
-
-UUID=$(uuidgen)
-HOSTNAME=$(hostnamectl | head -n 1 | awk '{print $3}')
-
-WORKDIR="/tmp/emails"
-PLAIN="$WORKDIR/$UUID.txt"
-ENC="$WORKDIR/$UUID.asc"
-FINAL="$WORKDIR/$UUID.eml"
-
-mkdir -p "$WORKDIR"
-
-BOUNDARY="pgp-boundary-$UUID"
-
-cat > "$PLAIN" <<EOF
-Content-Type: text/plain; charset=utf-8
-
-$(cat)
-EOF
-
-gpg --yes --batch \
- --armor \
- --output "$ENC" \
- --encrypt \
- --recipient "$EMAIL_ADDRESS" \
- "$PLAIN"
-
-{
- echo "From: Automated <$EMAIL_ADDRESS>"
- echo "To: Automated <$EMAIL_ADDRESS>"
- echo "Subject: Message from $HOSTNAME"
- echo "MIME-Version: 1.0"
- echo "Content-Type: multipart/encrypted; protocol=\"application/pgp-encrypted\"; boundary=\"$BOUNDARY\""
- echo
- echo "This is an OpenPGP/MIME encrypted message."
- echo
- echo "--$BOUNDARY"
- echo "Content-Type: application/pgp-encrypted"
- echo
- echo "Version: 1"
- echo
- echo "--$BOUNDARY"
- echo "Content-Type: application/octet-stream; name=\"encrypted.asc\""
- echo "Content-Transfer-Encoding: 7bit"
- echo "Content-Disposition: inline; filename=\"encrypted.asc\""
- echo
- cat "$ENC"
- echo
- echo "--$BOUNDARY--"
-} > "$FINAL"
-
-curl -s --ssl-reqd \
- --url "smtps://$EMAIL_DOMAIN:465" \
- --user "$EMAIL_ADDRESS:$EMAIL_PW" \
- --mail-from "$EMAIL_ADDRESS" \
- --mail-rcpt "$EMAIL_ADDRESS" \
- --upload-file "$FINAL"
-
-rm -f "$PLAIN" "$ENC" "$FINAL"
-
-echo "PGP/MIME encrypted message sent."
diff --git a/email/email-send.sh b/email/email-send.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+# USAGE: email-send.sh {SUBJECT}
+# Reads message from stdin
+# If there is no subject it sends "Message from {hostname}"
+
+set -euo pipefail
+
+UUID=$(uuidgen)
+HOSTNAME=$(hostnamectl | head -n 1 | awk '{print $3}')
+
+WORKDIR="/tmp/emails"
+PLAIN="$WORKDIR/$UUID.txt"
+ENC="$WORKDIR/$UUID.asc"
+FINAL="$WORKDIR/$UUID.eml"
+
+mkdir -p "$WORKDIR"
+
+BOUNDARY="pgp-boundary-$UUID"
+
+SUBJECT="Message from $HOSTNAME"
+
+if [ -n "$1" ]; then
+ SUBJECT=$1
+fi
+
+
+cat > "$PLAIN" <<EOF
+Content-Type: text/plain; charset=utf-8
+
+$(cat)
+EOF
+
+gpg --yes --batch \
+ --armor \
+ --output "$ENC" \
+ --encrypt \
+ --recipient "$EMAIL_ADDRESS" \
+ "$PLAIN"
+
+{
+ echo "From: Automated <$EMAIL_ADDRESS>"
+ echo "To: Automated <$EMAIL_ADDRESS>"
+ echo "Subject: $SUBJECT"
+ echo "MIME-Version: 1.0"
+ echo "Content-Type: multipart/encrypted; protocol=\"application/pgp-encrypted\"; boundary=\"$BOUNDARY\""
+ echo
+ echo "This is an OpenPGP/MIME encrypted message."
+ echo
+ echo "--$BOUNDARY"
+ echo "Content-Type: application/pgp-encrypted"
+ echo
+ echo "Version: 1"
+ echo
+ echo "--$BOUNDARY"
+ echo "Content-Type: application/octet-stream; name=\"encrypted.asc\""
+ echo "Content-Transfer-Encoding: 7bit"
+ echo "Content-Disposition: inline; filename=\"encrypted.asc\""
+ echo
+ cat "$ENC"
+ echo
+ echo "--$BOUNDARY--"
+} > "$FINAL"
+
+curl -s --ssl-reqd \
+ --url "smtps://$EMAIL_DOMAIN:465" \
+ --user "$EMAIL_ADDRESS:$EMAIL_PW" \
+ --mail-from "$EMAIL_ADDRESS" \
+ --mail-rcpt "$EMAIL_ADDRESS" \
+ --upload-file "$FINAL"
+
+rm -f "$PLAIN" "$ENC" "$FINAL"
+
+echo "PGP/MIME encrypted message sent."