From 2180265d4cfdb84ffe02eae49f1db31a4e6eae44 Mon Sep 17 00:00:00 2001
From: Neshura <neshura@noreply.forgejo.neshweb.net>
Date: Sat, 12 Apr 2025 12:48:22 +0000
Subject: [PATCH] Add disk-warn.sh

---
 disk-warn.sh | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)
 create mode 100644 disk-warn.sh

diff --git a/disk-warn.sh b/disk-warn.sh
new file mode 100644
index 0000000..10d2040
--- /dev/null
+++ b/disk-warn.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+# Purpose: Monitor Linux disk space and send an email alert to $ADMIN
+#ALERT=90 # alert level
+ALERT=90
+ADMIN="neshura@neshweb.net" # dev/sysadmin email ID
+df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read -r output;
+do
+  echo "$output"
+  usep=$(echo "$output" | awk '{ print $1}' | cut -d'%' -f1 )
+  partition=$(echo "$output" | awk '{ print $2 }' )
+  lockname=$(echo $partition | tr / _);
+  if [ $usep -ge $ALERT ]; then
+   if test -f "./$lockname.lock";
+    then echo "Found lockfile - Cancel mail";
+    else
+   touch "./$lockname.lock"
+   {
+      echo "TO: $ADMIN"
+      echo "Subject: Alert: Disk spage usage at $usep%/$ALERT%"
+      echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)"
+   } |
+   ssmtp -F"Jellyfin" "$ADMIN"
+   fi
+  else
+   if test -f "./$lockname.lock"; then rm "./$lockname.lock"
+   fi
+ fi
+done
\ No newline at end of file