How to send output to web server, line by line?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to send output to web server, line by line?
# 1  
Old 02-22-2010
How to send output to web server, line by line?

The following code works perfectly, but I am having trouble adapting it to output to my web server rather than a local file:

Code:
#!/bin/sh
# VARIABLES

adapter="/dev/tty.usbmodem0000001"

if [ -a $adapter ]; then
   cat $adapter | tee >> WORKING.txt
   echo "AT+VCID=1" > $adapter
   
else
   echo "Modem not found"
fi


In my pseudo code, I replaced "tee >> WORKING.txt" with "curl -k 'https://secure.myserver.com/log.cgi?num=$?'" but it doesn't function.
Thank you for any help that you can provide.

Basically, I don't know how to pipe output from one command to another successfully.
Part of the challenge is that the connection to the modem is what I would describe as a socket. So new data streams in whenever the modem receives it, and the shell script must remain open. It does not, and should not exit.

Last edited by Scott; 02-22-2010 at 02:26 AM.. Reason: Clarification, code tags
# 2  
Old 02-22-2010
Well, you shouldn't just keep a persistent connection to a web server around like that. HTTP isn't really meant for persistent transfers, the idea is you make a request, finish it, and either make another or break the connection. So you'll need to break this into chunks, somehow. You may be able to set reads from the device to auto-timeout...

Your piping is fine but you're not actually telling curl to send any data. You probably need to POST it. Because of the way HTTP works you may not be able to pipe it at all, I know the similar wget tool needs to be given data of known length. To what and how depends on your web interface. We really don't have any of the details we need to tell you how here.
# 3  
Old 02-22-2010
Thanks for the reply...

Perhaps I wasn't clear. The modem spits out lines periodically -- as in 10 or so lines every 30 minutes. I want each line to be turned into a separate curl command, so that the data contained in each line can be sent to my web server for processing.

When I connect to the modem via the terminal, the connection remains open. I can watch incoming phone calls arrive, errors, etc. That is the only persistent part. The web server should only receive a request for each line of data received. Normally, the modem is quiet -- waiting for a call/fax/callerid/etc
# 4  
Old 02-22-2010
curl doesn't do that. Like I said, you'll need to split it yourself.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Get an output of lines in pattern 1st line then 10th line then 11th line then 20th line and so on.

Input file: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (6 Replies)
Discussion started by: Sagar Singh
6 Replies

2. Shell Programming and Scripting

How to read the output of a command line by line and pass it as a variable?

Hi, I have some 2000 names in a table like below. Java Oracle/SQL ANSI SQL SQL,DWH,DB DB&Java And by using for loop in my code i am able to get a single word but if there is any special character or space then it is considering as a next line. I have to execute the below queries in... (10 Replies)
Discussion started by: Samah
10 Replies

3. UNIX for Beginners Questions & Answers

Output to file print as single line, not separate line

example of problem: when I echo "$e" >> /home/cogiz/file.txt result prints to file as:AA BB CC I need it to save to file as this:AA BB CC I know it's probably something really simple but any help would be greatly appreciated. Thank You. Cogiz (7 Replies)
Discussion started by: cogiz
7 Replies

4. Shell Programming and Scripting

sed command to replace a line in a file using line number from the output of a pipe.

Sed command to replace a line in a file using line number from the output of a pipe. Is it possible to replace a whole line piped from someother command into a file at paritcular line... here is some basic execution flow.. the line number is 412 lineNo=412 Now i have a line... (1 Reply)
Discussion started by: vivek d r
1 Replies

5. Shell Programming and Scripting

convert single line output to multiple line

Hi all, I have a single line output like below echo $ips 10.26.208.28 10.26.208.26 10.26.208.27 want to convert above single line output as below format. Pls advice how to do ? 10.26.208.28 10.26.208.26 10.26.208.27 Regards Kannan (6 Replies)
Discussion started by: kamauv234
6 Replies

6. Shell Programming and Scripting

Joining multi-line output to a single line in a group

Hi, My Oracle query is returing below o/p ---------------------------------------------------------- Ins trnas value a lkp1 x a lkp1 y b lkp1 a b lkp2 x b lkp2 y ... (7 Replies)
Discussion started by: gvk25
7 Replies

7. Shell Programming and Scripting

Merge multi-line output into a single line

Hello I did do a search and the past threads doesn't really solve my issue. (using various awk commands) I need to combine the output from java -version into 1 line, but I am having difficulties. When you exec java -version, you get: java version "1.5.0_06" Java(TM) 2 Runtime... (5 Replies)
Discussion started by: flagman5
5 Replies

8. Shell Programming and Scripting

Bash - Loading a command's output line by line into an array

I have been trying this a lot of different ways and haven't found too much online. Here's what I've got so far: j=0 declare -a first zero=(`cat $tmpfile`) for i in "${zero}" do command $i >> "${first}" ... (4 Replies)
Discussion started by: Azrael
4 Replies

9. Shell Programming and Scripting

single line input to multiple line output with sed

hey gents, I'm working on something that will use snmpwalk to query the devices on my network and retreive the device name, device IP, device model and device serial. I'm using Nmap for the enumeration and sed to clean up the results for use by snmpwalk. Once i get all the data organized I'm... (8 Replies)
Discussion started by: mitch
8 Replies
Login or Register to Ask a Question