Skip to content

Instantly share code, notes, and snippets.

@rmrfus
Created February 18, 2013 22:10
Show Gist options
  • Save rmrfus/4981235 to your computer and use it in GitHub Desktop.
Save rmrfus/4981235 to your computer and use it in GitHub Desktop.
Simplest monitoring script
#!/bin/sh
umask 027
BASEDIR=/opt/diffdog
WORKERS_DIR=$BASEDIR/workers
RESULTS_BASEDIR=$BASEDIR/results
RECIPIENT="superuser@command.center"
find $WORKERS_DIR -maxdepth 1 -type f -perm -u+rx | while read SCRIPT ; do
SCRIPT_NAME=$(basename $SCRIPT)
RESULTS_DIR="$RESULTS_BASEDIR/$SCRIPT_NAME"
RESULT_FILE=$(date -u +%Y%m%d-%H%M%S)
DIFF_FILE=${RESULT_FILE}.diff
mkdir -p $RESULTS_DIR
echo " * Running "$(basename $SCRIPT)
$SCRIPT > "$RESULTS_DIR/$RESULT_FILE"
PREVIOUS_FILE=$(ls -rt $RESULTS_DIR | grep -v '\.diff' | tail -2 | head -1)
if [ "$RESULT_FILE" = "$PREVIOUS_FILE" ] ; then
echo " ! No previous file. First run?"
continue
fi
(
cd $RESULTS_DIR
diff -U3 $PREVIOUS_FILE $RESULT_FILE > $DIFF_FILE
if [ ! -s $DIFF_FILE ] ; then
rm -f $DIFF_FILE
rm -f $RESULT_FILE
echo " . No changes. Great."
continue
else
source-highlight -i $DIFF_FILE -o STDOUT | \
mail -a 'Content-type: text/html; charset="us-ascii"' $RECIPIENT -s "[DIFFDOG] $SCRIPT_NAME"
fi
)
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment