Capture Shell Script Output To A File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Capture Shell Script Output To A File
# 1  
Old 01-13-2009
Capture Shell Script Output To A File

Hi,

I am running a shell script called dbProcess.sh which performs shutdown and startup of various Oracle instances we have.At the time of execution the script produces the following output to the command line window

$./dbProcess.sh stop

#### Run Details ######
Hostname : server-hop-1
RunDate : 01-13-09
RunTime : 09:43:14
#### ########### ######
##############################################################################
/u01/app/oracle/product/9.2
/u01/app/oracle
it9
##############################################################################
##############################################################################
# Setting Environment Variables For SID : # it9
##############################################################################
##############################################################################
# Contents Of Connection Out File #
##############################################################################
##############################################################################
# Killing Active DB Connections #
##############################################################################
Connected.
Database closed.
Database dismounted.
ORACLE instance shut down.
##############################################################################

I would like to create an output file being at the time of executing the dbProcess.sh and the process must write all the output lines of the dbProcess.sh to this file.

I would like to clarify that i am not looking for any kind of redirection commands using the > or >> symbol.

What i am looking out for is a series of commands that i will be able to add to my dbProcess.sh shell script which will start a log file write all the shell output to the logfile and at the end of it save and exit the log file. I dont mind if the output is not showing up on the stdout for me most important aspect is the creation of this logfile and to write all output to this logfile.

I tried the to add lines to dbProcess.sh using the unix script command.But it did not work because when the shell script executed the script command line it stopped and waited for me to type exit for it to continue.

Please let me know if you have any clarification.

Thanks and kind Regards,
Rajan.S
# 2  
Old 01-13-2009
Somewhere in the beginning of your file put this
Code:
exec 1>/tmp/dbProcess.${$}.log
exec 2>/tmp/dbProcess.${$}.debug

That will effectively redirect STDOUT to a logfile (unique through the processes' ID) and STDERR to a debugging file.
This User Gave Thanks to pludi For This Post:
# 3  
Old 01-13-2009
Hi,

The above exec command worked.. Thanks...

What are the commands if we would like to see the output on stdout as well as log to file. Because in case of exec the output is not being shown in the terminal.

Thanks an Kind Regards,
Rajan.S
# 4  
Old 01-13-2009
You cannot do both with just a redirection, because one file descriptor cannot output to more than one stream; it becomes a lot trickier, needing an entire second process to write the extra stream, either that or significant modifications to your original script.
# 5  
Old 01-13-2009
You could try using tee (not available on all *NIXes), but that doesn't work with exec, but would require to change the whole script
Or run your script in background and follow with tail -f
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Homework & Coursework Questions

How to Dynamically Pass Parameter to plsql Function & Capture its Output Value in a Shell Variable?

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: 2. Relevant commands, code, scripts, algorithms: #! /bin/ksh v="ORG_ID" ... (2 Replies)
Discussion started by: sujitdas2104
2 Replies

2. Shell Programming and Scripting

Capture output from expect script

Hi I am new to Expect scripting. I have to connect to a remote server and capture the output. Here I need output of " send "list registered\r"" to be stored in a file. but after execution, /tmp/capture.txt is of 0 byte #!/usr/bin/expect spawn ssh abc@10.10.10.10 -p 5022 expect... (2 Replies)
Discussion started by: bns928
2 Replies

3. Shell Programming and Scripting

Want ro capture the debug in output file

I want to capture the debug for the below command in output file . i tried like this but its not working: sh -xv <scriptname> >> output.log i want the output in a log file. Anyone plz help in this (2 Replies)
Discussion started by: chakkaravarthy
2 Replies

4. Shell Programming and Scripting

How to capture output to log file

Hi I have a script that will run multiple unix & sql commands. I want to see the output as well as capture it to a log file for further analysis. Is there an easy way to do that instead of adding "tee -a logfile" on everyline or even on the execute line (i.e. script | tee -s logfile). Thanks (1 Reply)
Discussion started by: nimo
1 Replies

5. Shell Programming and Scripting

Script to capture snoop output

Hi Everyone :), Need your advice as I'm new to UNIX scripting.. I'm trying to write a script to capture snoop output for 5 minutes for every hour for 24 hours. To stop snoop, I need to press Control-C to break it. This is what I got so far, but now I'm stuck! :confused: The script: # cat... (2 Replies)
Discussion started by: faraaris
2 Replies

6. Shell Programming and Scripting

capture output of file and send last string thereof to new file

Hello, If I run a program from within shell, the output is displayed in the command line terminal. Is there a way I can capture that output and choose only the very last string in it to send it to a new file? Thank you (6 Replies)
Discussion started by: Lorna
6 Replies

7. Shell Programming and Scripting

script to capture certain output

Hi All, I want to create a script that capture only Date & Time, Current CPU % usage, Disk % usage, Mem % usage and Top process based on this output; Data Collected: 05/17/08 17:19:49 Refresh Interval: 600 seconds GlancePlus Started/Reset: 05/17/08 08:19:45 B3692A GlancePlus... (18 Replies)
Discussion started by: fara_aris
18 Replies

8. UNIX for Dummies Questions & Answers

capture shell output in cron entry

Hey all, I'm running scripts from cron and I want to capture the output from the 1 file handle. Ex. * * * * * /test.sh 1>test.log. I also want to append a formatted date to the file. * * * * /test.sh 1>test.log_date +%m%d%y but I keep keep getting the output as if I had just added the date... (5 Replies)
Discussion started by: steve72
5 Replies

9. UNIX for Advanced & Expert Users

Capture output to file and printer

Hi All : I wanted a unix command by which I could be able to print the output to a file and at the same time to a printer. Any help will be greatly appreciated. Regards, Ramamurthy Dasari (1 Reply)
Discussion started by: rdasari
1 Replies

10. Shell Programming and Scripting

Capture output from interactive script

I have written a menu driven script to walk users through bringing up and down an application process. Sometimes the user tells me the script does not work taking the application down, but he can't recall seeing an error message. Is there a way to capture std out and stderr out from an... (6 Replies)
Discussion started by: MizzGail
6 Replies
Login or Register to Ask a Question