Brett Parker wrote:
Hmm, something like...
OK, I'm currently running with: #!/bin/bash warningpercentage=90 persontomail=me@someplace.com subjectofmail='Warning: You are running low on diskspace!' percentageused=$(df -h | sed '1d; s#^.* \([0-9]*\)%.*$#\1#;') if [[ $percentageused -gt $warningpercentage ]]; then ( echo $nicemessage echo df -h ) | mail -s "$subjectofmail" $persontomail fi The only significant issue I ran in to getting this far was missing quotes around $subjectofmail in mail command; I initially sent emails to you@, are@, running@, etc. The bit missing is the fact I want to run it regularly from cron, but not get an email every 30 mins (or whatever) once the disk space runs low. I think it should ideally send a new one every time the %age drops from the last email sent (so if the threshold is 90% I'll get no more than 10 emails before the server fills). But obviously it needs to reset itself when the level drops back down. So, my quick hack to get that is: #!/bin/bash warningpercentage=90 persontomail=me@someplace.com subjectofmail='Warning: You are running low on diskspace!' oldusage=0 if [ -f ~/.diskspacewarning ]; then oldusage=`cat ~/.diskspacewarning` fi percentageused=$(df -h | sed '1d; s#^.* \([0-9]*\)%.*$#\1#;') if [ $percentageused -gt $oldusage ]; then if [[ $percentageused -gt $warningpercentage ]]; then ( echo $nicemessage echo df -h ) | mail -s "$subjectofmail" $persontomail fi fi echo $percentageused > ~/.diskspacewarning It works, but I'm sure it could be done better? [This is a learning exercise for me!] Thanks (all) for the help so far. -- Mark Rogers More Solutions Ltd :: 0845 45 89 555