Debugging Help Needed

 
Thread Tools Search this Thread
Homework and Emergencies Homework & Coursework Questions Debugging Help Needed
# 1  
Old 02-25-2018
Debugging Help Needed

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!

I am VERY much a neophyte with shell scripting. I am working on the following,

1. The problem statement, all variables and given/known data:

"Create a script sends an email message to the user specified on the command line if any of the file
systems at more than 60% of capacity. The script should not process special file systems as /proc on
the ce.uml.edu. It should only process file systems which are either locally mounted or are mounted
via NFS.""Create a script sends an email message to the user specified on the command line if any of the file
systems at more than 60% of capacity. The script should not process special file systems as /proc on
the ce.uml.edu. It should only process file systems which are either locally mounted or are mounted
via NFS."

2. Relevant commands, code, scripts, algorithms:



3. The attempts at a solution (include all code and scripts):

Code:
#!/bin/bash
#  script to send an email message to the user specified on the command line if
# any of the file systems at more than 60% of capacity.

df -H | grep -vE '^Filesystem' | 'none' | awk '{ print $1 " " $5 }' | while read fsout
do
  echo "$fsout"
  partition=$(echo "$fsout" | awk '{ print $2 }' )
  usage=$(echo "$fsout" | awk '{ print $1 }' | cut -d'%' -f1)

  if [ $usage -ge 90 ]
  then
    echo "CRITICAL WARNING!!: Filesystem \"$partition\" at "$usage"% of capacity" |
    mail -s "CRITICAL WARNING!!: Filesystem \"$partition\" at "$usage"% of capacity" emailaddress@student.uml.edu

  elif [ $usage -ge 60 ] && [ $usage -lt 90 ]
  then
    echo "Warning!!: Filesystem \"$partition\" at "$usage"% of capacity" |
    mail -s "Warning!!: Filesystem \"$partition\" at "$usage"% of capacity" emailaddress@student.uml.edu
  fi
done

4. Complete Name of School (University), City (State), Country, Name of Professor, and Course Number (Link to Course):
University Of Massachusetts, Lowell, USA, Michael Richards, Linux/Unix System Administration

Note: Without school/professor/course information, you will be banned if you post here! You must complete the entire template (not just parts of it).

I am getting these errors:


Code:
./fsc.sh: line 4: $'\r': command not found
./fsc.sh: line 16: syntax error near unexpected token `elif'
'/fsc.sh: line 16: `  elif [ $usage -ge 60 ] && [ $usage -lt 90 ]

Any help is greatly appreciated.


Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!

Last edited by doghouse308; 02-25-2018 at 02:31 PM.. Reason: Added CODE tags.
# 2  
Old 02-25-2018
It appears your script has Windows style carriage return (CR) characters (\r) present, which are messing up things.
These can be removed like this:
Code:
tr -d '\r' < oldscript > newscript



--
Unix/Linux uses LF line endings (Line Feed), while Windows uses CRLF endings (Carriage Return / Line Feed).
# 3  
Old 02-25-2018
We're getting closer.

Now getting

Code:
./fsc2.sh: line 11: [: udev: integer expression expected
./fsc2.sh: line 16: [: udev: integer expression expected
tmpfs 1%
./fsc2.sh: line 11: [: tmpfs: integer expression expected
./fsc2.sh: line 16: [: tmpfs: integer expression expected
/dev/dm-0 5%
./fsc2.sh: line 11: [: /dev/dm-0: integer expression expected
./fsc2.sh: line 16: [: /dev/dm-0: integer expression expected
none 0%
./fsc2.sh: line 11: [: none: integer expression expected
./fsc2.sh: line 16: [: none: integer expression expected
none 0%
./fsc2.sh: line 11: [: none: integer expression expected
./fsc2.sh: line 16: [: none: integer expression expected
none 1%
./fsc2.sh: line 11: [: none: integer expression expected
./fsc2.sh: line 16: [: none: integer expression expected
none 1%
./fsc2.sh: line 11: [: none: integer expression expected
./fsc2.sh: line 16: [: none: integer expression expected
/dev/sda1 14%
./fsc2.sh: line 11: [: /dev/sda1: integer expression expected
./fsc2.sh: line 16: [: /dev/sda1: integer expression expected
ce.uml.edu:/users/ 16%
./fsc2.sh: line 11: [: ce.uml.edu:/users/: integer expression expected
./fsc2.sh: line 16: [: ce.uml.edu:/users/: integer expression expected
ce.uml.edu:/space/ 36%
./fsc2.sh: line 11: [: ce.uml.edu:/space/: integer expression expected
./fsc2.sh: line 16: [: ce.uml.edu:/space/: integer expression expected

Will quotations around $usage and or the number eliminate these errors?


Moderator's Comments:
Mod Comment Please use CODE tags (for output / data as well) as required by forum rules!

Last edited by RudiC; 02-25-2018 at 02:33 PM.. Reason: Added CODE tags.
# 4  
Old 02-25-2018
Code:
usage=$(echo "$fsout" | awk '{ print $1 }' | cut -d'%' -f1)

If this is correct ( syntax...), it doesnt make the value an integer... thus the error
e.g. in ksh, I would use let
# 5  
Old 02-25-2018
Sure | 'none' | is a valid command?
In lieu of your while read fsout you could read individual variables and get rid of many of your conversions / extractions.
Sure usage is $1?
# 6  
Old 02-25-2018
I added the let that you suggested and got this:

Code:
udev 1%
tmpfs 1%
/dev/dm-0 5%
./fsc.sh: line 9: let: usage=/dev/dm-0: syntax error: operand expected (error token is "/dev/dm-0")
none 0%
none 0%
none 1%
none 1%
/dev/sda1 14%
./fsc.sh: line 9: let: usage=/dev/sda1: syntax error: operand expected (error token is "/dev/sda1")
ce.uml.edu:/users/ 16%
./fsc.sh: line 9: let: usage=ce.uml.edu:/users/: syntax error: invalid arithmetic operator (error token is ".uml.edu:/users/")
ce.uml.edu:/space/ 36%
./fsc.sh: line 9: let: usage=ce.uml.edu:/space/: syntax error: invalid arithmetic operator (error token is ".uml.edu:/space/")

---------- Post updated at 01:50 PM ---------- Previous update was at 01:46 PM ----------

Quote:
Originally Posted by RudiC
Sure | 'none' | is a valid command?
In lieu of your while read fsout you could read individual variables and get rid of many of your conversions / extractions.
Sure usage is $1?
Honestly, not sure of much at this point. I've gone so many different directions with this I don't recall what lead me from one decision to another.

The script currently looks like this

Code:
#!/bin/bash
#  script to send an email message to the user specified on the command line if
# any of the file systems at more than 60% of capacity.

df -H | grep -vE '^Filesystem | none' | awk '{ print $1 " " $5 }' | while read -r fsout
do
  echo "$fsout"
  partition=$(echo "$fsout" | awk '{ print $2 }' )
  let usage=$(echo "$fsout" | awk '{ print $1 }' | cut -d'%' -f1)

  if [ "$usage" -ge "90" ]
  then
    echo "CRITICAL WARNING!!: Filesystem \"$partition\" at \"$usage\"% of capacity" | \
    mail -s "CRITICAL WARNING!!: Filesystem \"$partition\" at \"$usage\"% of capacity" emailaddress@student.uml.edu

  elif [ "$usage" -ge "60" ] && [ "$usage" -lt "90" ]
  then
    echo "Warning!!: Filesystem \"$partition\" at \"$usage\"% of capacity" | \
    mail -s "Warning!!: Filesystem \"$partition\" at \"$usage\"% of capacity" emailaddress@student.uml.edu
  fi
done

---------- Post updated at 02:04 PM ---------- Previous update was at 01:50 PM ----------

Thank you! No, usage was not 1, it was two. Working now!

Last edited by Don Cragun; 02-25-2018 at 07:40 PM.. Reason: Add CODE and ICODE tags.
# 7  
Old 02-26-2018
Glad our clues helped you out...
Thanks for keeping us informed, and good luck for the future
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Debugging Help needed

I am VERY much a neophyte with shell scripting. I am working on the following, "Create a script sends an email message to the user specified on the command line if any of the file systems at more than 60% of capacity. The script should not process special file systems as /proc on the... (2 Replies)
Discussion started by: doghouse308
2 Replies

2. Shell Programming and Scripting

Debugging functions

So here I have a simple function that I wish to debug. However, I am unable to debug the desired function even with set -o functrace enabled. Before resorting to asking this question, I had managed to find a possible solution that did not produce the desired results, which is located here. How... (5 Replies)
Discussion started by: BrandonD
5 Replies

3. Programming

c++ debugging

hey i have a problem with a switch case in program and the debugger is messy has hell ( we use normal VI and gdb in our schoool to make it more diffiacult) any way i have a problom where for some unknown reason the debugger just skips a switch statment as if it wasent even there the rest... (2 Replies)
Discussion started by: gotenxds
2 Replies

4. Shell Programming and Scripting

script debugging

is there any way you can add a breakpoint in a script so you can stop on it? i have used -xv in my shebang but the script just runs and i want it to stop at a specific point in the script. appreciate any help. (1 Reply)
Discussion started by: npatwardhan
1 Replies

5. Programming

Need some help in debugging the C-Progam.

Hi i want to debug the C program with GDB debugger. I want to debug the program by line by line. I want to debug program like as we debug the program in Turbo-C using the F8. Can any one help me? I know i have to use single stepping. But i don't know how to use it. Any help can be appreciated..... (5 Replies)
Discussion started by: ps_sach
5 Replies

6. Solaris

debugging

when I tried to debug my application i got the following. gdb -v GNU gdb 6.6 file is in C and Xmotiff Languages (gdb) attach 25499 Attaching to process 25499 Retry #1: Retry #2: Retry #3: Retry #4: 0xfea40b68 in ?? () (gdb) where #0 0xfea40b68 in ?? () (0 Replies)
Discussion started by: satish@123
0 Replies

7. Shell Programming and Scripting

debugging in bash!!! help needed

Hi all, Am using bash shell. Am newbie, trying to understand the debugin process of a shell script... I am unable to comprehend the control flow ,meaning from where exactly the execution of the script begins... I tried using bash-xv <scriptname> but since am new ,am finding it difficult to... (2 Replies)
Discussion started by: wrapster
2 Replies

8. Programming

Semaphore debugging

I'm running one multithreaded application, in that one of my thread is waiting infinitely in a semphore. Is there a way to determine, in which semaphore the particular thread is waiting and which thread(s) is holding the semaphore. (5 Replies)
Discussion started by: ptprabu
5 Replies

9. Programming

function debugging. help

Hi, I tried creating my version of the cat function in bash but left it and now I'm trying to make this function work, but it wouldn't. #include <sys/param.h> #include <sys/stat.h> #include <locale.h> #include <ctype.h> #include <err.h> #include <errno.h> #include <fcntl.h>... (2 Replies)
Discussion started by: sanchopansa
2 Replies

10. Shell Programming and Scripting

Regarding Debugging

Hi, If we want to debug a shell script, then set -vx has to be included in the begining of the script. Just i want to know what purpose -vx is used. Thanks in advace Sarwan (2 Replies)
Discussion started by: sarwan
2 Replies
Login or Register to Ask a Question