Capturing script output and input to log


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Capturing script output and input to log
# 1  
Old 01-27-2011
Capturing script output and input to log

Hi
Is there a way that I can capture a shell script (both output and input) to a log file where I can analyze it?

Thanks
# 2  
Old 01-27-2011
The tee command will allow you to capture both input and output. For example, if you wanted to capture I/O for process XYZ in a pipeline use:


Code:
command1 | tee XYZ.in | XYZ -arg1 -arg2 | tee XYZ.out | command2

# 3  
Old 01-27-2011
If you have access to change the Shell script and it is written in a Bourne-like Shell (like ksh, bash etc.) you can capture as much as you want - including the command line used to call the script and any output. You can also trace all Shell commands executed.

Did you have an example script in mind?
# 4  
Old 01-27-2011
It is a script that I wrote (bourne) and I display list of foulder, create some files with specific content, export some database tables, etc.

How do I proceed? I tried using "tee -a" at the end of every line, but I find it very poor process for long script.
# 5  
Old 01-27-2011
Why not put tee on the invocation of the script (rather than updating the script and using tee -a on every line)? For example

Code:
$ myscript -arg1 -arg2 | tee output.log

# 6  
Old 01-27-2011
This will not work because I have menu and selection of steps, etc. Also, there are Yes/No answers for some of these steps :-(
# 7  
Old 01-27-2011
OK well best to edit your script and put the stuff you want to log in a function and pipe it to tee:

Code:
function display_menu
{
 ....
}
 
function doprocessing
{
   ....
}
 
# main code block
display_menu
...
doprocessing | tee output.log

or put your processing code between ( ) and redirect this output to tee ( ... ) | tee output.log

These are generic solutions and perhaps a simplified example of your script will help us to give a more specific solution.

Last edited by Chubler_XL; 01-27-2011 at 07:03 PM.. Reason: Syntax update - support bash or ksh
This User Gave Thanks to Chubler_XL For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help capturing output of expect script

match_max 500000 set timeout 30 set outcome1 {} set outcome2 {} set inputfile C:\\Users\\Administrator\\Desktop\\inputfile.txt send -i $con "\r"; expect -i $con "Desktop>" { exp_send "type $inputfile \r" } set timeout 30 expect { "Desktop>" { set outcome $expect_out(0,string);}... (3 Replies)
Discussion started by: cityprince143
3 Replies

2. Shell Programming and Scripting

Capturing output of procedure in variable in shell script

Hi guys I am calling one DB2 stored proc through unix. It is giving me below output. I want to capture the value 150 in one UNIX variable in shell script. Please let me know how I can achieve this. Thanks in advance Value of output parameters -------------------------- Parameter Name :... (5 Replies)
Discussion started by: vnimavat
5 Replies

3. Shell Programming and Scripting

Capturing log of a shell script

Hi, I have a script which does multiple tasks in sequence. When i execute the script, it runs and displays lot of messages for each of the steps on the console. Is there any way I can capture those messages and store it for audit purposes ? Best Regards, bornon2303 (2 Replies)
Discussion started by: bornon2303
2 Replies

4. Shell Programming and Scripting

Problem capturing output in TCL script

I have a TCL script that logs into a switch using expect.I send a command "show port-security address" and it returns a table having a large number of rows.I need to capture this output(the table) and store it in a .txt file. I have done this: match_max 5000 set expect_out(buffer) {} set... (0 Replies)
Discussion started by: plasmalightwave
0 Replies

5. UNIX for Dummies Questions & Answers

Capturing Input Parameters on Shell Script

i have this basic line of code that doesn't work. i simply want to get the input parameter strings but when the script is run it appears that the first parameter is assigning the value to the second parameter. #!/bin/sh pdir=`pwd` p1=$1 p2=$2 echo "directory: $pdir\n" echo "parameter... (2 Replies)
Discussion started by: wtolentino
2 Replies

6. Shell Programming and Scripting

Capturing Sybase SP output in Shell Script

Greetings, I need to capture the output of a Sybase stored procedure, inside my shell script( k shell). Based on this output, I need to call another perl script, with input arguments as the result set of the procedure execution. I need to keep looping through and call the perl script, ... (2 Replies)
Discussion started by: rajpreetsidhu
2 Replies

7. Shell Programming and Scripting

capturing line from script output and appending to a file

Hi all, I did some searching in this forum but can't find anything that matches the issue I'm bumping heads with. On a CentOS4/Postfix (and bash everywhere) mail gateway box I run a command periodically to purge the Postfix queue of messages "From:MAILER-DAEMON". This is the one line'r... (6 Replies)
Discussion started by: wally_welder
6 Replies

8. Shell Programming and Scripting

log script input and output using tee ?

hi, new to to forum... i've been trying to create a script in tcsh but i'm having a problem with one thing... the script has to keep log of it's input and output so i'm using tee -a log | script | tee -a log this keeps the logs as asked, but it gives me an extra empty prompt (not in the... (0 Replies)
Discussion started by: moseschrist
0 Replies

9. Shell Programming and Scripting

Capturing shell script command output

I am trying to check to see if a file exists on a ftp server, well, I know that cant be done, atleast directly, So I came up with this small script ftp -n $HOST <<END_SCRIPT quote USER $USER quote PASS $PASSWD cd public_html/crap dir $FILE quit END_SCRIPT Where the $ variable... (2 Replies)
Discussion started by: designflaw
2 Replies

10. Shell Programming and Scripting

capturing output in script

I have the following line in my script: $sftpcmd $rmthost <<COMMANDS>> $sftplog 2>&1 For some reason this is not capturing the errors from sftp, they go to the file attached to the cron entry ie mm hh dd MM * /myscript > cron.out any idea why? digital unix 4.0d (6 Replies)
Discussion started by: MizzGail
6 Replies
Login or Register to Ask a Question