Help with reading link output


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help with reading link output
# 1  
Old 04-22-2010
Computer Help with reading link output

Hello folks;
I have a script uses wget to query a link to get the temperature from sensor then email the results to me.

Here's the script:

Code:
"wget -q http://server/temp -O - | mail -s "Temp Update" moe@ocd.com"

normally the output from using wget looks like this:
Code:
Lab_1|69.8 |  Lab_2|74.5|  Lab_3|72.1|  Lab_4|76.0


I want the script to read this output before it sends it then if any of the temperature read 80.0 or above, it sends an email with which one has that reading, if none is 80.0 or above, it exits.

help is much appreciated

Last edited by vgersh99; 04-22-2010 at 12:42 PM.. Reason: code tags, please!
# 2  
Old 04-22-2010
Try this:
Code:
wget -q http://server/temp -O - | 
awk -F"|" '{
  for(i=2;i<NF;i+=2){
    if($i >= 80){
      print $0 "| mail -s \042Temp Update\042 moe@ocd.com" 
      exit
    }
  }
}'

# 3  
Old 04-22-2010
Thanks Franklin52. i tried it but it didn't send me an email. it did print the entire output including the pipe to mail but it didn't send any actual email. here's what i got:

Code:
Lab_1|69.8 | Lab_2|74.5| Lab_3|72.1| Lab_4|76.0 | mail -s "Temp Update" moe@ocd.com


Last edited by vgersh99; 04-22-2010 at 12:43 PM.. Reason: code tags, please!
# 4  
Old 04-22-2010
Quote:
Originally Posted by Katkota
but it didn't send me an email.
Arrrr. I can't "read" Franklin52's code but I assume it's working and the result matches your request exactly!
Quote:
Originally Posted by Katkota
if none is 80.0 or above, it exits.
You could change 80 to 70 in Franklin52's code and see it in action.

BTW this is my code:
(You will also need to change TEM="80" to TEM="70" if you want to see any results immediately.)
Code:
$ cat cuttemp
#!/bin/sh
TEM="80"
ARR=""
L1="LAB_1 "
L2="LAB_2 "
L3="LAB_3 "
L4="LAB_4"
while read line
do
        lab1=`echo $line | cut -d '|' -f 2 | cut -d '.' -f1`
        lab2=`echo $line | cut -d '|' -f 4 | cut -d '.' -f1`
        lab3=`echo $line | cut -d '|' -f 6 | cut -d '.' -f1`
        lab4=`echo $line | cut -d '|' -f 8 | cut -d '.' -f1` 

        if [ $lab1 -ge $TEM ] ; then
        ARR="$ARR $L1"
        fi

        if [ $lab2 -ge $TEM ] ; then
        ARR="$ARR $L2"
        fi
 
        if [ $lab3 -ge $TEM ] ; then
        ARR="$ARR $L3"
        fi
 
        if [ $lab4 -ge $TEM ] ; then
        ARR="$ARR $L4"
        fi

	if [ "$ARR" = "" ] ; then
	echo "no problem... exit."
	exit 0
        else
	echo $ARR
        mail -s "Temp Update: Check $ARR" moe@ocd.com
	exit 0
	fi

done < tempdata
rm tempdata

To run it:
Code:
wget -q http://server/temp -O - > tempdata && ./cuttemp


Last edited by pseudocoder; 04-22-2010 at 01:12 PM..
# 5  
Old 04-22-2010
Thanks pseudocoder;
I tried it with no luck. still got no emails and don't see the echo message where it should say (no problem)
# 6  
Old 04-22-2010
OK. Let's start some basic debugging...

1. Did you modify Franklin52's code? (...since I consider his code more professional)

2. Can you please post the output of:
Code:
$ wget -q http://server/temp -O - > tempdata
$ cat tempdata

# 7  
Old 04-22-2010
output from more tempdata:

Lab_1|69.8 | Lab_2|74.5| Lab_3|72.7| Lab_4|76.6
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Reading output returned to OS from java program.

I am writing one shell script in which there is one Java program call. I want to stop execution of shell script ahead of java program if the java program returns 1 . How to read that value of java program from OS ? (3 Replies)
Discussion started by: ParthThakkar
3 Replies

2. Shell Programming and Scripting

Error in reading the output from command

I getting error as test1.sh: syntax error at line 3: `do' unexpected while i was trying to run below code.. What was going wrong here? find /usr/tmp/SB/reports/ -type f -name *.rdf |read file;do echo "Copying $file to /usr/tmp/SB1" done (1 Reply)
Discussion started by: millan
1 Replies

3. UNIX for Dummies Questions & Answers

Reading from Screen/Standard Output

Is it possible to read from the screen or standard output? If so, may I know how I can do this? For example, I have an application running which prints out the following on the screen: Starting tools from .image-tools... imagecontrol_1: SECS/GEM-capable version is running done cindy@pgunix... (2 Replies)
Discussion started by: sippingsoda
2 Replies

4. Shell Programming and Scripting

Reading PL/SQL output online from perl??

Hi there, I got this situation at job. First i have a Perl script that connect to Oracle 10g and execute a package. That package execute severals transactions and must generate log about process status each interval of time. What i'm doing now is saving the plsql package log in an auxiliar... (4 Replies)
Discussion started by: jparra
4 Replies

5. Ubuntu

tar not reading if output directed to /dev/null

I stumbled across a somewhat strange behavior of tar and find no explanation for it: i was testing a DVD for read errors and thought to simply tar the content and direct the output to /dev/null: tar -cvf - /my/mountpoint/*ts > /dev/null This way i expected the system to read the complete... (4 Replies)
Discussion started by: bakunin
4 Replies

6. Shell Programming and Scripting

Reading from a text file then /grep/output

I have a list of words that I want to grep in many files to see which ones have it and which ones dont. in the text file I have all the words listed line by line, ex: list.txt: check try this word1 word2 open space list .. I want to grep each line one by one. like I want it to... (7 Replies)
Discussion started by: s3rro
7 Replies

7. UNIX for Dummies Questions & Answers

Reading the output of df command

Can any body please explain the following df command to me:filesystem kbytes used avail capacity mounted on /dev/root 6474195 2649052 3825143 41% / /dev/stand 24097 5757 18340 24% /stand /proc 0 0 0 ... (7 Replies)
Discussion started by: nervous
7 Replies

8. Shell Programming and Scripting

reading command output from shell script

Hi List, How to read the output of a command executed from a script. For ex. sample_scritp.sh ------------- useradd testuser1 password testuser1 .... ..... -------------- This prompts for "password", and "confirm password", for which i need to give the values from script. Can... (4 Replies)
Discussion started by: sri b
4 Replies

9. Shell Programming and Scripting

Reading Input from File and Duplicates Output

Greetings to all, I would like to read input from a file and make duplications from it with Linux shell. For e.g. Input file ----------- ABC ABB ABA ------------------------------- Output file ------------ ABC ABC ABC ABB ABB (6 Replies)
Discussion started by: noelcantona
6 Replies

10. Programming

Reading console output

I am writing a program that uses system() to pass commands to the command interpreter. Is there a way to read the output that the commands produce? (1 Reply)
Discussion started by: Blaster999
1 Replies
Login or Register to Ask a Question