Sponsored Content
Top Forums Shell Programming and Scripting redirect only the standard error output to mail Post 302153779 by barkath on Wednesday 26th of December 2007 06:55:46 PM
Old 12-26-2007
redirect only the standard error output to mail

I'm writing a script using file descriptor 2 (std error) to send an email only if the command fails or errors out but the script always emails me irrepective of whether it fails or not. It will not email the /tmp/check.error file output if doesn't error out just the mail with the subject "Cannot run check script on machB".

Any suggestions would be really appreciated. Thanks

Code:
###(Note: I have a mail problem with the one on 4th line, the other one works OK)
==========================================================================================
#!/bin/ksh

echo "" >> /tmp/sync.error

rsync -goptvz -e ssh /var/sync.all machB:/var/sync.all 2>>/tmp/sync.error

ssh -l root machB '/usr/local/check' 2>>/tmp/check.error | mail -s "Cannot run check script on machB" email@removed  

if [ $? = 0 ]
then
  date +"%D %T:$script Successfully executed." >> /dev/null 

else
  date +"%D %T:$script Unsuccessfully executed." >> /tmp/sync.error
  date +"%D %T: Exiting script." >> /tmp/sync.error
  mail -s "Cannot sync the sync.all file to machB, plz. look at /tmp/sync.error" email@removed < /tmp/sync.error

  exit 1
fi

date +"%D %T: Sync of printcap.all file completed." >> /tmp/sync.error

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

redirect standard error into log file

Hi, I am new in shell scripting. Can anyone point out what wrong of below script. If I want the error output to "sqlerror.log" and database pool data output to "bulk_main.dat". Right now, the below script, if successful execute, the data will output to bulk_main.dat && sqlerror.log both... (7 Replies)
Discussion started by: epall
7 Replies

2. UNIX for Dummies Questions & Answers

Question from a newbie. How to redirect standard output

I have a program that is sending error text to the console and I need to redirect that output to a log file. I'm brand new to Unix and don't know how to do this. Any direction would be greatly appreciated. (1 Reply)
Discussion started by: ndemos
1 Replies

3. Shell Programming and Scripting

[BASH] redirect standard error and use it inside

Hi all, Maybe my question is too simple but till now i couldn't figure about a solution :( I have a bash script scheduled in cron: <cron time parameters> my_script.sh > result.log 2>&1 By this way i can have standard output and standard error in my result.log file Now i want my script... (2 Replies)
Discussion started by: Pescator
2 Replies

4. Programming

Redirect Standard Output Multi-Process

Hi, I'm trying to compile the following code: /************** Begin <test.c> ***************/ /* * Compiled with: gcc -Wall -o test test.c */ #include <stdio.h> #include <unistd.h> int main(void) { printf("I'm process %d, son of %d \n", getpid(), getppid()); ... (5 Replies)
Discussion started by: djodjo
5 Replies

5. Shell Programming and Scripting

Redirect standard error to input of other process, 2| ?

Hello, I would like to know if there is a shell in which operations such as 2| (redirect standard error of one process to the standard input of another one) exist? I know it is possible to do it in bash with things like: (process 2>&1) | other_process but I find it a bit intricate when... (3 Replies)
Discussion started by: chlorine
3 Replies

6. UNIX for Dummies Questions & Answers

Redirect Standard output and standard error into spreadsheet

Hey, I'm completely new at this and I was wondering if there is a way that I would be able to redirect the log files in a directories standard output and standard error into and excel spreadsheet in anyway? Please remember don't use too advanced of terminology as I just started using shell... (6 Replies)
Discussion started by: killaram
6 Replies

7. Shell Programming and Scripting

How redirect standard output to a file

Hi guys, i have a script named purgeErrors.ksh, when i execute this script i need to redirect the output to a log file in the same directory, how can i do that ?? -- Aditya (5 Replies)
Discussion started by: chaditya
5 Replies

8. Shell Programming and Scripting

script to mail monitoring output if required or redirect output to log file

Below script perfectly works, giving below mail output. BUT, I want to make the script mail only if there are any D-Defined/T-Transition/B-Broken State WPARs and also to copy the output generated during monitoring to a temporary log file, which gets cleaned up every week. Need suggestions. ... (4 Replies)
Discussion started by: aix_admin_007
4 Replies

9. UNIX for Dummies Questions & Answers

Redirect Standard Error to /dev/null is not working.

Hello. When I run a .ksh that contains the command below, and there is no file available in the source location the "FILE_NAME_*.CSV not found" error is still being displayed. FILEN=$(ssh ${SOURCE_SERV} "cd ${SOURCE_LOCATION} ;ls ${FILES}") 2> /dev/null. This is interfering with the rest... (4 Replies)
Discussion started by: jimbojames
4 Replies

10. Shell Programming and Scripting

Redirect script output to a file and mail the output

Hi Guys, I want to redirect the output of 3 scripts to a file and then mail the output of those three scripts. I used below but it is not working: OFILE=/home/home1/report1 echo "report1 details" > $OFILE =/home/home1/1.sh > $OFILE echo... (7 Replies)
Discussion started by: Vivekit82
7 Replies
rdeliver(1)						      General Commands Manual						       rdeliver(1)

NAME
rdeliver - Ruby mail filter script SYNOPSYS
rdeliver <options> [script] DESCRIPTION
This script serves as an example of how you can use the RFilter::DeliveryAgent class to perform mail delivery. You can also use this script as a fully functioning mail filter. This script is a basic mail local delivery agent (DeliveryAgent) that can be used in place of procmail, maildrop, etc. in a user's .forward or .qmail file. The user supplies a delivery script that is written in Ruby, which avoids the limitations of the crippled mini-languages so often used in other DeliveryAgent programs. USAGE
rdeliver is invoked from the command line using: % rdeliver <options> [script] The script argument is optional. If omitted the script will look for a file called .rdeliver in the home directory. Options are: --load-path directory Prepend the given directory to ruby's load path. --log filename Log to the given filename. If no log is specified, no logging occurs. --home directory Specify the home directory. rdeliver will change to this directory before reading and writing any files. The home directory defaults to the value of the HOME or LOGDIR environment variable. DELIVERY SCRIPT
The delivery script runs in the context of a class called Deliver (in contrast, most ruby scripts run in the context of the Object class). So any methods added with def will be added to the Deliver class. A minimal delivery script would be: def main agent.save('inbox') end This code defines a Deliver#main method that saves the mail into an mbox style mailbox. The only API the Deliver script has is the #agent method. This retrieves the RFilter::DeliveryAgent object associated with the current message. Using the API of the RFilter::DeliveryAgent object, you can access and modify the message body and headers, defer or reject the message delivery, and deliver into various mailbox formats. See also RFilter::DeliveryAgent and Deliver. INSTALLATION
Assuming you have the RubyMail mail classes installed, you typically have to put something like this in your .forward file: |"/usr/bin/rdeliver --log /home/you/.rlog" This will call rdeliver for each new message you get, and log to /home/you/.rlog. CATASTROPHIC ERRORS
The rdeliver script is very careful with errors. If there is any problem, it logs the error to the log file you specify. But if you do not specify a log file, or the error occurs before the log file is opened, a record of the error is placed in a file called CATASTROPH- IC_DELIVERY_FAILURE in the home directory. If that fails, the error information is printed to the standard output in the hopes that it will be part of a bounce message. In all cases, the exit code 75 is returned, which tells the MTA to re-try the delivery again. AUTHOR
rdeliver and RFilter support classes were written by Matt Armstrong <matt@lickey.com>. This document was originally an RD format document of rdeliver script. This manual page was converted from it for Debian GNU/Linux system. September 2003 rdeliver(1)
All times are GMT -4. The time now is 10:56 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy