summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO15
-rw-r--r--PKGBUILD20
-rwxr-xr-xunit-status-mail27
-rw-r--r--unit-status-mail@.service7
4 files changed, 69 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 00000000000..7e20b6ec8a5
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,15 @@
+pkgbase = systemd-unit-status-mail
+ pkgdesc = Service to mail a systemd's unit status
+ pkgver = 1.0.0
+ pkgrel = 1
+ arch = any
+ license = GPL3
+ depends = coreutils
+ depends = smtp-forwarder
+ source = unit-status-mail
+ source = unit-status-mail@.service
+ sha256sums = f7f5808650bd09d75707059a918f451d7f150ff26e0e64526ed4e9e4ff2a80f1
+ sha256sums = 7905bce82e8bbf387358f0360eeac49d6724a06eae0be1b8db5ae4ae8d4c8732
+
+pkgname = systemd-unit-status-mail
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 00000000000..575f950e65e
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,20 @@
+# Maintainer: Alex Mekkering <amekkering at gmail dot com>
+
+pkgname=systemd-unit-status-mail
+
+pkgver=1.0.0
+pkgrel=1
+pkgdesc="Service to mail a systemd's unit status"
+arch=(any)
+license=('GPL3')
+depends=('coreutils' 'smtp-forwarder')
+source=('unit-status-mail'
+ 'unit-status-mail@.service'
+)
+sha256sums=('f7f5808650bd09d75707059a918f451d7f150ff26e0e64526ed4e9e4ff2a80f1'
+ '7905bce82e8bbf387358f0360eeac49d6724a06eae0be1b8db5ae4ae8d4c8732')
+
+package() {
+ install -D -m 755 "$srcdir/unit-status-mail" "$pkgdir/usr/bin/unit-status-mail"
+ install -D -m 644 "$srcdir/unit-status-mail@.service" "$pkgdir/usr/lib/systemd/system/unit-status-mail@.service"
+}
diff --git a/unit-status-mail b/unit-status-mail
new file mode 100755
index 00000000000..46fc64381c1
--- /dev/null
+++ b/unit-status-mail
@@ -0,0 +1,27 @@
+#!/bin/bash
+MAILTO="root"
+MAILFROM="unit-status-mailer"
+UNIT=$1
+DATE=$(date '+%F')
+
+EXTRA=""
+for e in "${@:2}"; do
+ EXTRA+="$e"$'\n'
+done
+
+UNITSTATUS=$(journalctl -S $DATE -l -n 100000 -u $UNIT)
+
+sendmail $MAILTO <<ENDOFMAILCONTENT
+From:$MAILFROM
+To:$MAILTO
+Subject:Status mail for unit: $UNIT
+Content-Transfer-Encoding: 8bit
+Content-Type: text/plain; charset=UTF-8
+
+Status report for unit: $UNIT
+$EXTRA
+
+$UNITSTATUS
+ENDOFMAILCONTENT
+
+echo -e "Status mail sent to: $MAILTO for unit: $UNIT"
diff --git a/unit-status-mail@.service b/unit-status-mail@.service
new file mode 100644
index 00000000000..04ed2342aaf
--- /dev/null
+++ b/unit-status-mail@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Unit Status Mailer Service
+After=network.target
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/unit-status-mail %i "Hostname: %H" "Machine ID: %m" "Boot ID: %b"