From: Yuri Weinstein Date: Mon, 9 May 2016 20:01:04 +0000 (-0700) Subject: A script to be used in crontab sepia nd ovh lab, so emails sent only on errors X-Git-Tag: v11.1.1~58^2^2~206^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=71a8daf9d072d6e98367c4ad41d6043b43a65b9d;p=ceph.git A script to be used in crontab sepia nd ovh lab, so emails sent only on errors Fixes: http://tracker.ceph.com/issues/15563 Signed-off-by: Yuri Weinstein --- diff --git a/nightlies/cron_wrapper b/nightlies/cron_wrapper new file mode 100644 index 000000000000..78b5f0a0046d --- /dev/null +++ b/nightlies/cron_wrapper @@ -0,0 +1,39 @@ +#!/bin/bash +# /nightlies/cron_wrapper.sh + +# check for no argument case and stop +if [ -z $1 ]; then + echo "need argument" + exit 1 +fi + +# set permanent $LOG file var +LOG="/var/log/crontab-nightlies-log/crontab.log" + +# temp files to store sdtout and stderr +# named with the PID of this script in their name so they'll be unique +STDERR="/var/tmp/stderr.$$" +STDOUT="/var/tmp/stdout.$$" + +# $STDOUT and $STDERR are removed when the script exits for any reason +trap "rm -f $STDOUT $STDERR" 0 + +# run a command from this script's argument +# redirect stdout to $STDOUT file and redirect stderr to $STDERR file +"$@" > $STDOUT 2> $STDERR + +# get return code from the command run +code=$? + +if [ $code != 0 ] ; then + # echoing to stdout/stderr makes cron send email + echo "stdout:" + cat $STDOUT + echo "stderr:" + cat $STDERR +else + # normal exit: just log stdout + DATE=$(date) + echo -n "$DATE: " >> $LOG + cat $STDOUT >> $LOG +fi