RSS Forums RSS

weird output

Please support our Shell Scripting advertiser: Programming Forums
Thread Solved
Reply
Posts: 210
Reputation: k2k is an unknown quantity at this point 
Solved Threads: 0
k2k k2k is offline Offline
Posting Whiz in Training

weird output

  #1  
Nov 10th, 2008
I had a similar script in solaris and it had no problem. I wrote this one in freeBSD and it gave me strange output. Can anyone please tell me why? thanks a lot

#!/bin/sh
#This is a shell script that checks file system capacity mounted on /home directory
#If file system is over 90% capacity, this shell script will generate notification emails sending to all users

warning()
{
 fs=$1          # first argument is the file system name
 fscap=$2       # second argument is the file system's capacity

 for user in `ls /home`

 do
   echo "File system mounted on /home directory is over 90% capacity. Please be ready for system maintainance. " | mail -s "Warning! $fs here is at $fscap capacity" user

 done

 echo "Warning: $fs is at $fscap capacity"
}

daOslg= `df -h | sed -n '/home/p' | tr -s ' ' ' ' | cut -d' ' -f1`
daOslgCap= `df -h | sed -n '/home/p' | tr -s ' ' ' ' | cut -d' ' -f5`

if ["$daOslgCap" -gt "90%"]
then
   warning $daOslg $daOslgCap
fi

output:
      
$ ./capChecker
./capChecker: /dev/da0s1g: Permission denied           
0%: not found
[: missing ]
AddThis Social Bookmark Button
Reply With Quote  
Posts: 399
Reputation: eggi will become famous soon enough eggi will become famous soon enough 
Solved Threads: 47
eggi eggi is offline Offline
Posting Whiz

Re: weird output

  #2  
Nov 10th, 2008
Hey there,

I think definitely you'll see some differences in performance. Solaris' sh is the bourne shell and a lot of linux/bsd distro's just like sh to bash or another shell.

The one thing I saw that jumped out at me was:

if ["$daOslgCap" -gt "90%"]

there may be 2 issues with this. Try padding spaces in between the [] and, possibly, check and see if there's an issue with the sense of your "if check", since "90%" is an alpha value and -gt is a unary comparison operator.

to add the spaces:
if [ "$daOslgCap" -gt "90%" ]

for the other part, you should clip the % from your value so you'll be checking if
$daOslgCap -gt 90

Hope that helps you get closer to an answer, if it doesn't answer the whole thing. If you could post the output of :

/bin/sh -x capChecker

that might shed some more light.

Best wishes,

Mike
Linux and Unix Tips, Tricks and Individual Advice - The Linux and Unix Menagerie!
------------------------------------------------------------------------
The greatest viral marketing idea of all time, get your copy of this Free Report now!
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.



Views: 499 | Replies: 1 | Currently Viewing: 1 (0 members and 1 guests)

 

Thread Tools Display Modes
Forums | Blogs | Tutorials | Code Snippets | Whitepapers | RSS Feeds | Advertising
All times are GMT -4. The time now is 2:29 pm.
Newsletter Archive - Sitemap - Privacy Statement - Acceptable Use Policy - Contact Us
Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC