Time for a script maybe? Here's one which may be of use. mailwrap.pl: #!/bin/sh ################################################################################# # This script does the following: # # - Executes a command in a subshell (command passed as first argument). # - Captures the stdout/stderr of the command. # - Mail the result with the subject passed as second argument with 'OK' # appended if the returnvalue was 0, with 'PROBLEM: RETURNVALUE X' appended # if the returnvalue was not 0 but X # # The intended mail recipient is given as third argument # # This script is 'silent' so that it can be started from crontab without needing # to redirect stdout and stderr to /dev/null; any errors in the script itself # can thus be seen if cron mails them # # So, to summarize, pass the following arguments: # # 1) Command to execute in a subshell # 2) Subject to use in an outgoing mail (OK or PROBLEM will be prepended) # 3) Recipient of the mail as third argument # 4) If you do NOT want to send messages if the returnvalue is 0, i.e. if # you want to suppress the OK messages, pass NOOK as 4th or 5th argument # 5) If you do not want to have empty messages on OKs, pass NOEMPTYOK as # 4th or 5th arg ################################################################################# # $Id: mailwrap.sh,v 1.5 2004/10/22 10:32:53 root Exp $ ################################################################################# if [[ -z "$1" ]] then printf "You have to pass the command to execute as first argument!\n" >&2 exit 1 fi COMMAND=$1 if [[ -z "$2" ]] then printf "You have to pass the subject to use as second argument!\n" >&2 exit 1 fi SUBJECT=$2 if [[ -z "$3" ]] then printf "You have to pass the recipient to use as third argument!\n" >&2 exit 1 fi RECIPIENT=$3 if [[ "NOOK" == "$4" || "NOOK" == "$5" ]] then # printf "NOOK passed as fourth argument - will suppress OK message\n" >&2 NOOK=1 else NOOK=0 fi if [[ "NOEMPTYOK" == "$4" || "NOEMPTYOK" == "$5" ]] then # printf "NOEMPTYOK passed as fourth argument - will suppress empty OK message\n" >&2 NOEMPTYOK=1 else NOEMPTYOK=0 fi # # Execute the passed command in a subshell. Note that /var/log/tmp must be accessible # We use the process number to get somewhat unique filename. The /var/log/tmp # directory should really not be writeable by anyone other than root. This should be # checked here... # TMPFILE=/var/log/tmp/result.$$ $1 > $TMPFILE 2>&1 RESULT=$? # Tweak the subject depending on $? (return value of last foreground pipeline) if [[ $RESULT -eq 0 ]] then SUBJECT="$SUBJECT: OK" else SUBJECT="$SUBJECT: PROBLEM, returnvalue=$RESULT" fi # If NOEMPTY and the result is OK do not send anything if [[ ($RESULT -eq 0) && ($NOEMPTYOK -eq 1) && !(-s $TMPFILE) ]] then rm $TMPFILE exit 0 else # Mail results if [[ ! (($RESULT -eq 0) && ($NOOK -eq 1)) ]] then mail "$RECIPIENT" -s "$SUBJECT" < $TMPFILE # else # printf "Did not mail anything\n" fi # Delete the TMPFILE rm $TMPFILE # Pass the returncode of the called command to the caller exit $RESULT fi --On Tuesday, October 18, 2005 9:38 AM -0400 Bill Tangren <bjt@xxxxxxxxxxxxxxxx> wrote:
However, I'd like to be able to control which cron jobs email where. For example, lets say I want script1 to send e-mail to bob@xxxxxxxxxxx and logwatch to email security@xxxxxxxxxxxx
-- redhat-list mailing list unsubscribe mailto:redhat-list-request@xxxxxxxxxx?subject=unsubscribe https://www.redhat.com/mailman/listinfo/redhat-list