28 lines
No EOL
891 B
Bash
28 lines
No EOL
891 B
Bash
#!/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 |