Solved

Linux Filesystem monitor script

Posted on 2013-12-03
7
470 Views
Last Modified: 2013-12-04
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

#!/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

Open in new window



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-splunkforwarder
                       520M   130M   364M  27% /opt/splunkforwarder
prddmv03-20.corp.erac.com:/home02/e200mp
                       731G   610G   121G  84% /home/e200mp
prddmv03-20.corp.erac.com:/home02/e515kr
                       731G   610G   121G  84% /home/e515kr
0
Comment
Question by:aanya247
  • 5
7 Comments
 
LVL 84

Accepted Solution

by:
ozo earned 100 total points
ID: 39694712
try changing awk '{ print $1}' to  awk '{ print $4}'
0
 

Author Comment

by:aanya247
ID: 39694764
Sorry I gave you the wrong script... it is

#!/bin/ksh
df -H | grep -vE '^Filesystem|prd|tmpfs|cdrom|home' | awk '{ print $5 " " $1 }'| 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

Open in new window




So I know where the problem is...When I run

# df -H | grep -vE '^Filesystem|prd|tmpfs|cdrom|home'


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         2.6G   2.3G   117M  96% /
/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-splunkforwarder    520M   130M   364M  27% /opt/splunkforwarder


How do i format my script to get this desired output
0
 
LVL 19

Assisted Solution

by:simon3270
simon3270 earned 400 total points
ID: 39694964
I'd pipe the df -h output through something like:
df -H | awk 'NF==1{printf("%s",$1);next}{print}' | grep ...

Open in new window

with the rest of the line unchanged.
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

Author Comment

by:aanya247
ID: 39695633
Thank you, now looks like the output is right now, thanks all
0
 

Author Comment

by:aanya247
ID: 39697603
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
0
 

Author Comment

by:aanya247
ID: 39697602
simon3270 syntax helped me fix the issue with the script, ozo helped me with a typo
0
 

Author Closing Comment

by:aanya247
ID: 39697604
simon3270 syntax helped me fix the issue with the script, ozo helped me with a typo
0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

I am a long time windows user and for me it is normal to have spaces in directory and file names. Changing to Linux I found myself frustrated when I moved my windows data over to my new Linux computer. The problem occurs when at the command line.…
Using 'screen' for session sharing, The Simple Edition Step 1: user starts session with command: screen Step 2: other user (logged in with same user account) connects with command: screen -x Done. Both users are connected to the same CLI sessio…
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now