cronic 909 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/bin/bash
  2. # MANAGED BY PUPPET
  3. # Module:: sharedadm
  4. # Cronic v2 - cron job report wrapper
  5. # Copyright 2007 Chuck Houpt. No rights reserved, whatsoever.
  6. # Public Domain CC0: http://creativecommons.org/publicdomain/zero/1.0/
  7. set -eu
  8. OUT=/tmp/cronic.out.$$
  9. ERR=/tmp/cronic.err.$$
  10. TRACE=/tmp/cronic.trace.$$
  11. set +e
  12. "$@" >$OUT 2>$TRACE
  13. RESULT=$?
  14. set -e
  15. PATTERN="^${PS4:0:1}\\+${PS4:1}"
  16. if grep -aq "$PATTERN" $TRACE
  17. then
  18. ! grep -av "$PATTERN" $TRACE > $ERR
  19. else
  20. ERR=$TRACE
  21. fi
  22. if [ $RESULT -ne 0 -o -s "$ERR" ]
  23. then
  24. echo "Cronic detected failure or error output for the command:"
  25. echo "$@"
  26. echo
  27. echo "RESULT CODE: $RESULT"
  28. echo
  29. echo "ERROR OUTPUT:"
  30. cat "$ERR"
  31. echo
  32. echo "STANDARD OUTPUT:"
  33. cat "$OUT"
  34. if [ $TRACE != $ERR ]
  35. then
  36. echo
  37. echo "TRACE-ERROR OUTPUT:"
  38. cat "$TRACE"
  39. fi
  40. fi
  41. rm -f "$OUT"
  42. rm -f "$ERR"
  43. rm -f "$TRACE"