Encontrei o script mencionado abaixo na internet, que avisa por e-mail quando o servidor fica com pouco armazenamento ou conforme definido. Eu o executo a cada 5 minutos, se estiver com pouco armazenamento, ele continua me notificando por e-mail após 5 minutos. O que preciso é receber apenas 1 notificação por e-mail quando o limite de armazenamento definido for excedido, porque 1 notificação é suficiente. Vou limpar o armazenamento e, se exceder novamente, serei notificado novamente uma vez e assim por diante. eu executo o script com o crontab.
#!/bin/sh
# Purpose: Monitor Linux disk space and send an email alert to $ADMIN
ALERT=90 # alert level
ADMIN="[email protected]" # 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 }' )
if [ $usep -ge $ALERT ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
mail -s "Alert: Almost out of disk space $usep%" "$ADMIN"
fi
done