|
@@ -0,0 +1,22 @@
|
|
|
|
|
+#!/bin/bash
|
|
|
|
|
+# mail_error -o file -m email_address command
|
|
|
|
|
+# Runs command and redirects all output to file
|
|
|
|
|
+# If command rc != 0, sends file to email_address
|
|
|
|
|
+
|
|
|
|
|
+function die { echo $1 ; exit 1; }
|
|
|
|
|
+
|
|
|
|
|
+while getopts "o:m:" c; do
|
|
|
|
|
+ case $c in
|
|
|
|
|
+ o) output_file=$OPTARG;;
|
|
|
|
|
+ m) email=$OPTARG;;
|
|
|
|
|
+ \*) echo "oops";;
|
|
|
|
|
+ esac
|
|
|
|
|
+done
|
|
|
|
|
+shift $(($OPTIND-1))
|
|
|
|
|
+echo "output_file=$output_file email=$email"
|
|
|
|
|
+
|
|
|
|
|
+[[ -z $1 ]] && die "Must specify command"
|
|
|
|
|
+
|
|
|
|
|
+if ! "$@" > $output_file 2>&1 ; then
|
|
|
|
|
+ mail -s "mail_error fail: $@" $email < $output_file
|
|
|
|
|
+fi
|