# 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
# 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
[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