Advertisement
Guest User

Untitled

a guest
Nov 20th, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.57 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Artisan cronjob wrapper - Pez
  4. # Adapted from Cronic v2 - a cron job report wrapper by Chuck Houpt
  5. set -eu
  6.  
  7. OUT=/tmp/cronic.out.$$
  8. ERR=/tmp/cronic.err.$$
  9. TRACE=/tmp/cronic.trace.$$
  10. TMPCRONLOG=/tmp/cronlog.$$
  11. CRONLOG=~/code/app/storage/logs/crontab.log
  12.  
  13. function logToFile {
  14.     echo -e "[`date +"%m-%d-%Y %T"`]\t$1" >> $CRONLOG
  15. }
  16.  
  17. touch $CRONLOG
  18. COMMAND=$(printf %q "$*")
  19. logToFile "Started $COMMAND"
  20.  
  21. set +e
  22. "$@" >$OUT 2>$TRACE
  23. RESULT=$?
  24. set -e
  25.  
  26. PATTERN="^${PS4:0:1}\\+${PS4:1}"
  27. if grep -aq "$PATTERN" $TRACE
  28. then
  29.     ! grep -av "$PATTERN" $TRACE > $ERR
  30. else
  31.     ERR=$TRACE
  32. fi
  33.  
  34. PATTERN="error"
  35. if grep -aq "$PATTERN" $OUT
  36. then
  37.     RESULT=1
  38. fi
  39.  
  40. if [ $RESULT -ne 0 -o -s "$ERR" ]
  41.     then
  42.     echo "Failure or error output for the command:"
  43.     echo "$@"
  44.     echo
  45.     echo "RESULT CODE: $RESULT"
  46.     echo
  47.     echo "ERROR OUTPUT:"
  48.     cat "$ERR"
  49.     echo
  50.     echo "STANDARD OUTPUT:"
  51.     cat "$OUT"
  52.     if [ $TRACE != $ERR ]
  53.     then
  54.         echo
  55.         echo "TRACE-ERROR OUTPUT:"
  56.         cat "$TRACE"
  57.     fi
  58.         echo
  59.  
  60.     LOG=`ls -t ~/code/app/storage/logs/*cli*.txt | head -1`
  61.     if [ -f "$LOG" ]
  62.         then
  63.             echo
  64.             echo "LAST 15 lines FROM ARTISAN CLI LOG:"
  65.             echo "$LOG"
  66.             tail -15 $LOG
  67.             echo
  68.     fi
  69.  
  70.     logToFile "Error running command check $LOG, command:\t${COMMAND}"
  71. else
  72.     logToFile "Command:\t${COMMAND}\tran without error"
  73. fi
  74.  
  75. # Truncate to 1000 lines
  76. tail -1000 $CRONLOG > $TMPCRONLOG
  77. cat $TMPCRONLOG > $CRONLOG
  78.  
  79. rm -f "$OUT"
  80. rm -f "$ERR"
  81. rm -f "$TRACE"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement