Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
I am VERY much a neophyte with shell scripting. I am working on the following,
The problem statement, all variables and given/known data:
"Create a script sends an email message to the user specified on the command line if any of the file
systems at more than 60% of capacity. The script should not process special file systems as /proc on
the ce.uml.edu. It should only process file systems which are either locally mounted or are mounted
via NFS.""Create a script sends an email message to the user specified on the command line if any of the file
systems at more than 60% of capacity. The script should not process special file systems as /proc on
the ce.uml.edu. It should only process file systems which are either locally mounted or are mounted
via NFS."
Relevant commands, code, scripts, algorithms:
The attempts at a solution (include all code and scripts):
#!/bin/bash
# script to send an email message to the user specified on the command line if
# any of the file systems at more than 60% of capacity.
df -H | grep -vE '^Filesystem' | 'none' | awk '{ print $1 " " $5 }' | while read fsout
do
echo "$fsout"
partition=$(echo "$fsout" | awk '{ print $2 }' )
usage=$(echo "$fsout" | awk '{ print $1 }' | cut -d'%' -f1)
if [ $usage -ge 90 ]
then
echo "CRITICAL WARNING!!: Filesystem \"$partition\" at "$usage"% of capacity" |
mail -s "CRITICAL WARNING!!: Filesystem \"$partition\" at "$usage"% of capacity" emailaddress@student.uml.edu
elif [ $usage -ge 60 ] && [ $usage -lt 90 ]
then
echo "Warning!!: Filesystem \"$partition\" at "$usage"% of capacity" |
mail -s "Warning!!: Filesystem \"$partition\" at "$usage"% of capacity" emailaddress@student.uml.edu
fi
done
Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
University Of Massachusetts, Lowell, USA, Michael Richards, Linux/Unix System Administration
Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).
I am getting these errors:
./fsc.sh: line 4: $'\r': command not found
./fsc.sh: line 16: syntax error near unexpected token `elif'
'/fsc.sh: line 16: ` elif [ $usage -ge 60 ] && [ $usage -lt 90 ]
Sure | 'none' | is a valid command?
In lieu of your while read fsout you could read individual variables and get rid of many of your conversions / extractions.
Sure usage is $1 ?
udev 1%
tmpfs 1%
/dev/dm-0 5%
./fsc.sh: line 9: let: usage=/dev/dm-0: syntax error: operand expected (error token is "/dev/dm-0")
none 0%
none 0%
none 1%
none 1%
/dev/sda1 14%
./fsc.sh: line 9: let: usage=/dev/sda1: syntax error: operand expected (error token is "/dev/sda1")
ce.uml.edu:/users/ 16%
./fsc.sh: line 9: let: usage=ce.uml.edu:/users/: syntax error: invalid arithmetic operator (error token is ".uml.edu:/users/")
ce.uml.edu:/space/ 36%
./fsc.sh: line 9: let: usage=ce.uml.edu:/space/: syntax error: invalid arithmetic operator (error token is ".uml.edu:/space/")
---------- Post updated at 01:50 PM ---------- Previous update was at 01:46 PM ----------
Honestly, not sure of much at this point. I've gone so many different directions with this I don't recall what lead me from one decision to another.
The script currently looks like this
#!/bin/bash
# script to send an email message to the user specified on the command line if
# any of the file systems at more than 60% of capacity.
df -H | grep -vE '^Filesystem | none' | awk '{ print $1 " " $5 }' | while read -r fsout
do
echo "$fsout"
partition=$(echo "$fsout" | awk '{ print $2 }' )
let usage=$(echo "$fsout" | awk '{ print $1 }' | cut -d'%' -f1)
if [ "$usage" -ge "90" ]
then
echo "CRITICAL WARNING!!: Filesystem \"$partition\" at \"$usage\"% of capacity" | \
mail -s "CRITICAL WARNING!!: Filesystem \"$partition\" at \"$usage\"% of capacity" emailaddress@student.uml.edu
elif [ "$usage" -ge "60" ] && [ "$usage" -lt "90" ]
then
echo "Warning!!: Filesystem \"$partition\" at \"$usage\"% of capacity" | \
mail -s "Warning!!: Filesystem \"$partition\" at \"$usage\"% of capacity" emailaddress@student.uml.edu
fi
done
---------- Post updated at 02:04 PM ---------- Previous update was at 01:50 PM ----------
Thank you! No, usage was not 1, it was two. Working now!