aanya247
asked on
Linux Filesystem monitor script
I have a Filesystem monitor script which is not quite working I know there is a problem with the syntax but dont know where can someone help me fix this, or If anyone has a better script can you please share it with me
Here is the script
Here is the output when I execute
# ./fs.sh
2.6G 1.9G 520M 79% /
./fs.sh: line 7: [: 2.6G: integer expression expected
976M 206M 720M 23% /opt
./fs.sh: line 7: [: 976M: integer expression expected
455M 37M 395M 9% /opt/netiq
./fs.sh: line 7: [: 455M: integer expression expected
1.6G 314M 1.2G 22% /var
./fs.sh: line 7: [: 1.6G: integer expression expected
976M 19M 907M 2% /tmp
./fs.sh: line 7: [: 976M: integer expression expected
520M 130M 364M 27% /opt/splunkforwarder
./fs.sh: line 7: [: 520M: integer expression expected
and my # df -H
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootvol
2.6G 1.9G 520M 79% /
/dev/mapper/rootvg-optvol
976M 206M 720M 23% /opt
/dev/mapper/rootvg-netiq
455M 37M 395M 9% /opt/netiq
/dev/mapper/rootvg-varvol
1.6G 314M 1.2G 22% /var
/dev/mapper/rootvg-tmpvol
976M 19M 907M 2% /tmp
/dev/sda1 194M 28M 156M 16% /boot
tmpfs 4.2G 0 4.2G 0% /dev/shm
/dev/mapper/rootvg-splunkf orwarder
520M 130M 364M 27% /opt/splunkforwarder
prddmv03-20.corp.erac.com: /home02/e2 00mp
731G 610G 121G 84% /home/e200mp
prddmv03-20.corp.erac.com: /home02/e5 15kr
731G 610G 121G 84% /home/e515kr
Here is the script
#!/bin/ksh
df -H | grep -vE '^Filesystem|dev|prd|tmpfs|cdrom|home' | while read output;
do
echo $output
value=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
fs=$(echo $output | awk '{ print $2 }' )
if [ $value -ge 85 ]; then
echo "Running out of space \"$fs ($value%)\" on $(hostname) as on $(date)" |
mail -s "Alert: Almost out of disk space $value%" a6179p@att.net
fi
done
Here is the output when I execute
# ./fs.sh
2.6G 1.9G 520M 79% /
./fs.sh: line 7: [: 2.6G: integer expression expected
976M 206M 720M 23% /opt
./fs.sh: line 7: [: 976M: integer expression expected
455M 37M 395M 9% /opt/netiq
./fs.sh: line 7: [: 455M: integer expression expected
1.6G 314M 1.2G 22% /var
./fs.sh: line 7: [: 1.6G: integer expression expected
976M 19M 907M 2% /tmp
./fs.sh: line 7: [: 976M: integer expression expected
520M 130M 364M 27% /opt/splunkforwarder
./fs.sh: line 7: [: 520M: integer expression expected
and my # df -H
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rootvg-rootvol
2.6G 1.9G 520M 79% /
/dev/mapper/rootvg-optvol
976M 206M 720M 23% /opt
/dev/mapper/rootvg-netiq
455M 37M 395M 9% /opt/netiq
/dev/mapper/rootvg-varvol
1.6G 314M 1.2G 22% /var
/dev/mapper/rootvg-tmpvol
976M 19M 907M 2% /tmp
/dev/sda1 194M 28M 156M 16% /boot
tmpfs 4.2G 0 4.2G 0% /dev/shm
/dev/mapper/rootvg-splunkf
520M 130M 364M 27% /opt/splunkforwarder
prddmv03-20.corp.erac.com:
731G 610G 121G 84% /home/e200mp
prddmv03-20.corp.erac.com:
731G 610G 121G 84% /home/e515kr
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you, now looks like the output is right now, thanks all
ASKER
I've requested that this question be closed as follows:
Accepted answer: 0 points for aanya247's comment #a39694764
Assisted answer: 100 points for ozo's comment #a39694712
Assisted answer: 400 points for simon3270's comment #a39694964
for the following reason:
script works perfectly fine
Accepted answer: 0 points for aanya247's comment #a39694764
Assisted answer: 100 points for ozo's comment #a39694712
Assisted answer: 400 points for simon3270's comment #a39694964
for the following reason:
script works perfectly fine
ASKER
simon3270 syntax helped me fix the issue with the script, ozo helped me with a typo
ASKER
simon3270 syntax helped me fix the issue with the script, ozo helped me with a typo
ASKER
Open in new window
So I know where the problem is...When I run
# df -H | grep -vE '^Filesystem|prd|tmpfs|cdr
The output is displayed in 2 lines for example for root it is displayed in 2 lines like
/dev/mapper/rootvg-rootvol
2.6G 2.3G 117M 96% /
Instead my script will work if the out put is on the same line like
/dev/mapper/rootvg-rootvol
/dev/mapper/rootvg-optvol 976M 206M 720M 23% /opt
/dev/mapper/rootvg-netiq 455M 37M 395M 9% /opt/netiq
/dev/mapper/rootvg-varvol 1.6G 605M 881M 41% /var
/dev/mapper/rootvg-tmpvol 976M 19M 907M 2% /tmp
/dev/sda1 194M 28M 156M 16% /boot
/dev/mapper/rootvg-splunkf
How do i format my script to get this desired output