Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Artisan cronjob wrapper - Pez
- # Adapted from Cronic v2 - a cron job report wrapper by Chuck Houpt
- set -eu
- OUT=/tmp/cronic.out.$$
- ERR=/tmp/cronic.err.$$
- TRACE=/tmp/cronic.trace.$$
- TMPCRONLOG=/tmp/cronlog.$$
- CRONLOG=~/code/app/storage/logs/crontab.log
- function logToFile {
- echo -e "[`date +"%m-%d-%Y %T"`]\t$1" >> $CRONLOG
- }
- touch $CRONLOG
- COMMAND=$(printf %q "$*")
- logToFile "Started $COMMAND"
- set +e
- "$@" >$OUT 2>$TRACE
- RESULT=$?
- set -e
- PATTERN="^${PS4:0:1}\\+${PS4:1}"
- if grep -aq "$PATTERN" $TRACE
- then
- ! grep -av "$PATTERN" $TRACE > $ERR
- else
- ERR=$TRACE
- fi
- PATTERN="error"
- if grep -aq "$PATTERN" $OUT
- then
- RESULT=1
- fi
- if [ $RESULT -ne 0 -o -s "$ERR" ]
- then
- echo "Failure or error output for the command:"
- echo "$@"
- echo
- echo "RESULT CODE: $RESULT"
- echo
- echo "ERROR OUTPUT:"
- cat "$ERR"
- echo
- echo "STANDARD OUTPUT:"
- cat "$OUT"
- if [ $TRACE != $ERR ]
- then
- echo
- echo "TRACE-ERROR OUTPUT:"
- cat "$TRACE"
- fi
- echo
- LOG=`ls -t ~/code/app/storage/logs/*cli*.txt | head -1`
- if [ -f "$LOG" ]
- then
- echo
- echo "LAST 15 lines FROM ARTISAN CLI LOG:"
- echo "$LOG"
- tail -15 $LOG
- echo
- fi
- logToFile "Error running command check $LOG, command:\t${COMMAND}"
- else
- logToFile "Command:\t${COMMAND}\tran without error"
- fi
- # Truncate to 1000 lines
- tail -1000 $CRONLOG > $TMPCRONLOG
- cat $TMPCRONLOG > $CRONLOG
- rm -f "$OUT"
- rm -f "$ERR"
- rm -f "$TRACE"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement