Hi , When i gave this code and gave cat command, i got the output like below
Code:
df -g | awk '+$4 >= 70 {print}' > report.txtif [ ! -s report.txt ]then echo "No issues to report."else echo "Filesystems at least 70% full" cat report.txtfi
cat report.txt
Code:
Filesystem GB blocks Free %Used Iused %Iused Mounted on
I Should not get the "Filesystem GB Blocks Free " it shoudl return the output as No issues alone. Is there any suggestions for this
your awk '+$4 >= 70 {print}' is actually looking for a value equal to or greater than 70 in column 4 of the df -g output as per your requirement ... not want the Filesystem line? just grep it out ...
Code:
df -g | awk '+$4 >= 70 {print}' | grep -v Filesystem > report.txt
if [ ! -s report.txt ]
then
echo "No issues to report."
else
echo "Filesystems at least 70% full"
cat report.txt
fi
The thing is there is no threshold limit crossed , so the output for that should be "NO issues to report" . Am i right? but i got the line "Filesystem GB blocks Free %Used Iused %Iused Mounted on" instead of "No issues to report".
first off, assistance you receive on this website is offered by unpaid volunteers on their own time -- that includes me -- so it would be good to maintain a professional tone ...
second, your issue is that your report is empty except for the Filesystem line and i have given you the fix for it which is to grep it out (see red font in prior post) ... if you run the df -g | awk '+$4 >= 70 {print}' by itself and no filesystem is over the threshold, you will only get the Filesystem line ... if you run the same command and a filesystem reaches the threshold, the Filesystem line will get printed with the actual filesystem info that hit the threshold ...
you need to reread the script as given and test as well as understand each line before you demand help
These 3 Users Gave Thanks to Just Ice For This Post:
I apologize for the wrong tone, i din mean to express like that. I dont know whether you got me or not. AM sorry for the words used. And i will try using the grep code which you shared.
---------- Post updated at 11:57 PM ---------- Previous update was at 11:54 PM ----------
Code:
df -g | awk 'NR>1&&($4+0)>70' > report.txt
if [ -s report.txt ]
then
echo "Filesystems above 70% utilization"
cat report.txt
else
echo "No filesystems found above 70% utilization"
fi
This one worked Thanks for the code.. And I apologize all if i went wrong in my words.
Just adding my 2 cents here. Another way to get this done would be:
Code:
#!/bin/bash
# Do not show the titles of columns:
df -H | grep -vE '^Filesystem' | awk '{ print $5 " " $1 }' | while read output;
do
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge 90 ]; then
# Here you can either display a message to the screen or log the results to a file
echo "Running out of space $partition ($usep%) on $(hostname) as on $(date +%Y%m%d)"
fi
done
If your question has been answered to your satisfaction, please mark this thread as solved for the future reference of other users. Thanks.
I have used the code given and edited some parts and implemented the code in my servers . The code implemented was given below:
Code:
#Report file format for all the servers to grep the threshold reached files ( Script name : Report.sh)
df -g | awk 'NR>1&&($4+0)>70' > report010.txt
if [ -s report151.txt ]
then
cat report010.txt >> report010.txt
else
echo "No file systems found above 70% utilization on the server `hostname`">>report010.txt
fi
Code:
#Concatenating all reports in one mail (Script name: Mail.sh)
echo > blank_line
echo “The list of File systems that reached threshold were given below” > mailbody.txt
echo “---------------------------------------------------------------------------------“>>mailbody.txt
cat report010.txt blank_line report011.txt >>mailbody.txt|mailx -s "Disk space Report-$(date +'%A %B %d, %Y')” –r “DSReport@office.com” hariharan.s@office.com
And i Got the output as below
Code:
From: DSReport@office.com [mailto:DSReport@office.com]
Sent: Thursday, August 08, 2013 6:33 PM
To: Sundaram, Hariharan
Subject: Disk space Report-Thursday August 08, 2013
The list of File systems that reached threshold were given below
--------------------------------------------------------------
Disk space report for vathpubs010
/dev/hd2 5.88 1.76 71% 61014 13% /usr
/dev/fnetwebc_lv 2.00 0.34 84% 3558 5% /opt/IBM/FileNet/WebClient
Disk space report for vathpubs011
/dev/fnetwebc_lv 2.00 0.34 84% 3558 5% /opt/IBM/FileNet/WebClient
No Issues to report for the server vathpubs012
No Issues to report for the server vathpubs013
No Issues to report for the server vathpubs014
Disk space report for vathpubs015
/dev/fnetwebc_lv 2.00 0.34 84% 3558 5% /opt/IBM/FileNet/WebClient
Disk space report for vathpubs016
/dev/fnetwebc_lv 2.00 0.34 84% 3558 5% /opt/IBM/FileNet/WebCli
No Issues to report for the server vathpubs017
No Issues to report for the server vathpubs018
I have achieved the goal , but there was some additional request requested by my leads, They want the output like the above but some little modifications required, thats is We got the output but They need the "Disk space report for" (with filesystem) sorted first and then the "no issues to report" these servers should come like " The list of servers which are not having issues are given below: " with the servernames below.
For example :
The list of servers thats not facing the space issue are:
vathpubs017
vathpubs018
So is there any possibilities to bring this output? Please help me .
Hi,
I am new to shell scripting, and want to monitor disk space using shell script continously on server, which will shoot mail after crossing threshold limit
Please suggest.
Regards
Manoj (1 Reply)
Hi,
I need help in writing unix script for checking space of some directories on the system and also send an email when it reaches the threshold limit.
I have written the followng code;
#!/bin/ksh
ADMIN="me@somewhere.com"
# set alert level 80% is default
THRESHOLD=80
df | grep -E... (5 Replies)
when i check
/export directory of my machine gets filled up (85%) i removed some old logs. but after cleaning df -k command still shows that /export is still 85% full.
Is there a way to force df to reflect actual free space without rebooting? My machine is a production one and can't... (8 Replies)
Hi
This is my script for disk space monitoring
clear
if
then
echo "You must be root user to execute the script"
fi
ALERT_LEVEL=10
CONSUMPTION_LEVEL= `df -k | awk {'print $5'} | cut -d '%' -f1 | sed "1 d"`
for i in $CONSUMPTION_LEVEL
do
FILE_SYSTEM=`df -k | awk {'print $1'} |... (3 Replies)
HI ...
I am New to the Unix...I am trying to write a script to check the disk space.
But i am not able to write it.
I know the command to check the disk space df -k,but unable to write the script..Can any body help me...
Thanks in advance... (3 Replies)
Hi Experts.
I had 100% disk full , even though i have removed 2 GB space still dbf command shows 100%.
How to rectify that. Appreciate your prompt help. Thanks (1 Reply)
Hello,
Can someone please tell me which command to use to determine the available disk space on a given disk device?
I have to write a shell script that compresses files and stores them in a specific location but I am not sure how "conservative" I should be?
Thanks in advance!
Al. (4 Replies)
I know I have posted this question before, but I still just don't understand how to determine disk space. This server is an IBM RS6000 running on AIX version 4.2.1.
I in essence need to know the following if anyone can assist me.
1) I need to know how many drives are configured in the... (2 Replies)
Hi
I'm trying to install gcc and the installation program tells me that I'm out of disk space! I have just installed the os (using the default settings for partitions and sizes) and have only installed apache on the machine. Can it really be out of disk space already?
How do I check how much... (4 Replies)