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>
This commit is contained in:
Theodore Ts'o 2019-03-06 23:46:20 -05:00
parent 198cbd4595
commit 48cc00797c
3 changed files with 30 additions and 10 deletions

View File

@ -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

View File

@ -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

View File

@ -4,8 +4,7 @@ Documentation=man:e2scrub(8)
[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