Visit Our UNIX and Linux User Community


Understanding of a script as a scripting newbie


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Understanding of a script as a scripting newbie
# 1  
Old 09-15-2009
Understanding of a script as a scripting newbie

Hi!

I have the following script and do not understand part of it. I have a very little understanding of scripting.

The script is for Nagios to check the response of fast-com.de. The guy who has written it is no longer in the company.

Code:
#!/bin/sh

PATH=/adm/bin:/bin:/usr/bin
export PATH

. /adm/libexec/nagios/utils.sh

print_help() {
}

print_usage() {
}


status_out=/tmp/sms-status.out
thresh_warn=5000
thresh_crit=15000
host=www.fast-com.de
url=/gsm/status.php


while test -n "$1"; do
  case "$1" in
    --help|-h)
      print_help
      exit $STATE_OK
      ;;
    --version|-V)
      print_revision
      exit $STATE_OK
      ;;
    --warning|-w)
      thresh_warn=$2
      shift
      ;;
    --critical|-c)
      thresh_crit=$2
      shift
      ;;
    --host|-H)
      host=$2
      shift
      ;;
    --url|-u)
      url=$2
      shift
      ;;
    *)
      $ECHO "Unknown argument: $1"
      print_usage
      exit $STATE_UNKNOWN
      ;;
  esac
  shift
done


rm -f $status_out
t=$(time 2>&1 -p wget --quiet --post-data='username=xxxxxx&password=xxxx&id=xxxxx' --no-check-certificate --output-document=$status_out --timeout=30 "https://${host}${url}" | perl -ne 'print int($1 * 1000) if /^real (\S+)/')

if [ ".$t" != . ]; then
  if [ -s $status_out ]; then
    result="ok"
    exitstatus=$STATE_OK
    if [ $t -ge $thresh_warn ]; then
      result="warning"
      exitstatus=$STATE_WARNING
    fi
    if [ $t -ge $thresh_crit ]; then
      result="critical"
      exitstatus=$STATE_CRITICAL
    fi
  else
    result="critical"
    exitstatus=$STATE_CRITICAL
  fi
else
  result="critical"
  exitstatus=$STATE_CRITICAL
fi

echo "REQUEST $result - $t ms | rtt=$t"
exit $exitstatus

What i don't understand are the following parts:

1. if [ ".$t" != . ]; then
I know that is a not equal check, but .$t and . ?

2. if [ -s $status_out ]; then
Here i don't know the meaning of -s

3. if [ $t -ge $thresh_warn ]; then
What does the -ge do here? I would expect something like $t -xy=xx

The check is delivering a status "Critical" and when i don't understand this three parts i can not verify the values which are delivered.

Thx

Alex

Last edited by locutus01; 09-15-2009 at 07:26 AM.. Reason: Tag failure
# 2  
Old 09-15-2009
Alex,

Code:
 
1. if [ ".$t" != . ]; then

The above is basically to check whether the variable $t is set or not. If it is indeed set to some value, then ".$t" will NOT be equal to "."

eg: if $t is set to a, then ".$t" will be equal to ".a".

Code:
2. if [ -s $status_out ]; then

-s file True if file exists and has a size greater than zero.

"man test" will give you more information.


Code:
3. if [ $t -ge $thresh_warn ]; then

The above is checking whether $t is greater than or equal to $thresh_warn and hence "-ge" option.

This is used for comparing numerals.


HTH,Smilie


Regards,

Praveen
# 3  
Old 09-15-2009
Thanks for the quick and good answer, will help me a lot.

Alex

Previous Thread | Next Thread
Test Your Knowledge in Computers #3
Difficulty: Easy
'Hello World' is a program only for advanced programmers.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Understanding Tetris-game code. newbie

Hi All, Been trying to understand the code in tetris game (in the sticky threads) & i know i have a alot reading /practice to do. it's using advanced methods with arrays and arithmetic and would much appreciate if some one can guide me to good books that's not outdated that would help me take... (0 Replies)
Discussion started by: xcod3r
0 Replies

2. Shell Programming and Scripting

Bash scripting - Newbie

Hi all, I have drill to do and I'll very appreciate your help: Please create a simple CSV file as follow (3 columns and 4 rows): A,B,C A,”B,C”,D “A,B”,C,D o A,B,”C,D” - Please refer to the comma between the quotation marks as a parameter and not as a separator. - Please provide... (3 Replies)
Discussion started by: elior
3 Replies

3. Shell Programming and Scripting

Trouble understanding shell scripting (mostly wsname)

Am still learning Scripting and I come across a build command that I don't really understand if /local/bin/wsname 2>/dev/null; then base="`/local/bin/wsname`" export base fi if ; then /local/bin/wsname exit 1 fi WSNAME="$base"/ can some one in light me to what... (1 Reply)
Discussion started by: Wpgn
1 Replies

4. UNIX for Dummies Questions & Answers

[Solved] Need help understanding ksh scripting.

Can any one please tell me where the error in below script. Output is not as per my requirement. if condition not comparing the result of record count of a file with 1. where is the pbm in my script? Appreciate your help.. #!/bin/ksh #Module- #Summary- To move the file to direcotries if... (9 Replies)
Discussion started by: shivadanam
9 Replies

5. Shell Programming and Scripting

Understanding Shell Scripting

Hi Gurus, Im new to Shell scripting. I have a shell script which basically sends an email when called thorugh my ETL tool. Wanted to understand the its functionality in detail. Would be great it any one can explain what exactly the commands to #!/bin/sh # Dummy UUCP rmail command for... (1 Reply)
Discussion started by: r_t_1601
1 Replies

6. Shell Programming and Scripting

scripting newbie... some help please?

hi all, i am just getting in to bash scripting, so don't be too harsh... i've created this little backup script, and it's just awfull... ugly, doesn't work like I want it to, the works. anyways, i was hoping some of you might help me improve it and learn a little in the process. what i... (13 Replies)
Discussion started by: jmd9qs
13 Replies

7. UNIX for Dummies Questions & Answers

am a newbie to unix. plz help in understanding this code.

hi everybody. please help me in understanding this code. echo "************* starting job on `date +\"%d/%m/%Y at %T\"` **************" # scriptdir=`dirname $0` . ${scriptdir}/env_params.sh # SHLIB_PATH=${ORACLE_HOME}/lib: export SHLIB_PATH export... (1 Reply)
Discussion started by: gokulj
1 Replies

8. Shell Programming and Scripting

scripting newbie needs help

I have written a script that will email a generic user when a device is "offline". I would like to enhance this by having the script lookup a contact's email and automatically add it to the MAIL_LIST. I am trying to lookup and return data based on a field common in two files File 1 ... (0 Replies)
Discussion started by: irishluck66
0 Replies

9. Shell Programming and Scripting

Scripting Newbie

Seems simple but I am having difficulty with this one: I am trying to write a single command line argument (which will be a path) - the program should print out the owner of the path. I can not get anything I write to run. Please help. (5 Replies)
Discussion started by: Kymmers7
5 Replies

10. UNIX for Dummies Questions & Answers

Shell Scripting Newbie

I'm relatively new at this scripting game, just need to learn some basic stuff for data handling. My current need is to write a script that loops through a textfile of filenames, and for each file removes the first line and re-writes that file to a new name. In fact I could do with knowing... (1 Reply)
Discussion started by: mattyjim2
1 Replies

Featured Tech Videos