e2scrub: make e2scrub_fail's e-mail addresses be configurable
Allow the sender and recipient e-mail addresses be configurable from
/etc/e2scrub.conf.
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
diff --git a/scrub/e2scrub.conf.in b/scrub/e2scrub.conf.in
index 69f997f..5c03087 100644
--- a/scrub/e2scrub.conf.in
+++ b/scrub/e2scrub.conf.in
@@ -1,5 +1,13 @@
# e2scrub configuration file
+# e-mail destination used by e2scrub_fail when problems are found with
+# the file system.
+# recipient=root
+
+# e-mail sender used by e2scrub_fail when problems are found with
+# the file system.
+# sender=e2scrub@host.domain.name
+
# Snapshots will be created to run fsck; the snapshot will be of this size.
# snap_size_mb=256
diff --git a/scrub/e2scrub_fail.in b/scrub/e2scrub_fail.in
index f27197a..2c0754a 100644
--- a/scrub/e2scrub_fail.in
+++ b/scrub/e2scrub_fail.in
@@ -2,24 +2,37 @@
# Email logs of failed e2scrub unit runs when the systemd service fails.
-recipient="$1"
-test -z "${recipient}" && exit 0
-device="$2"
+device="$1"
test -z "${device}" && exit 0
-hostname="$(hostname -f 2>/dev/null)"
-test -z "${hostname}" && hostname="${HOSTNAME}"
+
if ! type sendmail > /dev/null 2>&1; then
echo "$0: sendmail program not found."
exit 1
fi
+if test -f /etc/e2scrub.conf ; then
+ . /etc/e2scrub.conf
+fi
+
+hostname="$(hostname -f 2>/dev/null)"
+test -z "${hostname}" && hostname="${HOSTNAME}"
+service_name="e2scrub@$(systemd-escape ${device})"
+
+if test -z "${recipient}" ; then
+ recipient="root"
+fi
+
+if test -z "${sender}" ; then
+ sender="<e2scrub@${hostname}>"
+fi
+
(cat << ENDL
-To: $1
-From: <e2scrub@${hostname}>
+To: ${recipient}
+From: ${sender}
Subject: e2scrub failure on ${device}
So sorry, the automatic e2scrub of ${device} on ${hostname} failed.
A log of what happened follows:
ENDL
-systemctl status --full --lines 4294967295 "e2scrub@${device}") | sendmail -t -i
+systemctl status --full --lines 4294967295 "${service_name}") | sendmail -t -i
diff --git a/scrub/e2scrub_fail@.service.in b/scrub/e2scrub_fail@.service.in
index ffc296a..4bad311 100644
--- a/scrub/e2scrub_fail@.service.in
+++ b/scrub/e2scrub_fail@.service.in
@@ -4,8 +4,7 @@
[Service]
Type=oneshot
-Environment=EMAIL_ADDR=root
-ExecStart=@pkglibdir@/e2scrub_fail "${EMAIL_ADDR}" %I
+ExecStart=@pkglibdir@/e2scrub_fail "%I"
User=mail
Group=mail
SupplementaryGroups=systemd-journal