#!/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"FROMNAME" "$ADMIN" fi else if test -f "./$lockname.lock"; then rm "./$lockname.lock" fi fi done