
#!/bin/sh
# File	: log_system-rpi-temp.sh
# By	: MaartenDeBoer.nl, 160226, 161006
# Subject	: Script to log the system-load to file / direct to Graphite
# (0.2)	: Changed name, no usage of TMP added usage
#(0.3)	: Changename & USAGE
PGM="`basename $0|cut -d\. -f1`"
VER="0.3"
HOSTNAME="`hostname |cut -d\. -f1`" 
DATADIR="${HOME}/data"

GRAPHITEHOST="nestorix.fritz.box 2003"
GROUPNAME="nl"
# Graphite: system.rpi.<group>|nl.<hostname>.temp.<temp>
FILE=""
GRAPHITE=""

USAGE()
{
  echo "Usage: ${PGM} [options]"
  echo "Options              : "
  echo "     -h              : This help"
  echo "     -v              : Verbose"
  echo "     -V              : Version"
  echo "     -f | --file     : to File"
  echo "     -g | --graphite : to File"
}

while [ ${#} -gt 0 ]
do
  case "${1}" in
    '-h')  USAGE; exit 1 ;;
    '-x')  set -x ;;
    '-V')  echo "Version=${VER}"; exit 1 ;;
    '-f' | '--file') FILE=1 ;;
    '-g' | '--graphite') GRAPHITE=1 ;;
    *) echo "Option ${1} not found." ; USAGE; exit 1 ;;
  esac
  shift
done

EPOCH="`date +%s`"
LOGMSG="`date +%Y-%m-%d' '%H:%M:%S`;${HOSTNAME};`sudo /opt/vc/bin/vcgencmd measure_temp|cut -d \= -f2|sed \"s/'C//\"`;"
echo "${LOGMSG}"

if [ ${FILE} ]; then
# Filename: system-<group>|nl-<hostname>-load_<date>.csv
  DATAFILE="${DATADIR}/system-${GROUPNAME}-${HOSTNAME}-rpi-temp_`date +%Y-%m-%d`.csv"

# If DATADIR does not exist, create this dir
  if [ ! -d ${DATADIR} ]; then
    mkdir -p ${DATADIR}
  fi
# If file does not exist, create by adding header
  if [ ! -f ${DATAFILE} ]; then
    echo "# Date time;hostname;rpi-temp;" > ${DATAFILE}
  fi

  echo "${LOGMSG}"|tee -a ${DATAFILE}
fi  #  FILE

if [ ${GRAPHITE} ]; then
  type nc
  EC=${?}
  if [ ${EC} -gt 0 ]; then
    echo "  NO nc found. Exiting ..."
    exit 2
  fi
  VAL="`echo "${LOGMSG}"|awk -F\; '{print $3}'`"
  echo " (${EPOCH}) ${VAL} "
  echo "system.rpi.${GROUPNAME}.${HOSTNAME}.temp ${VAL} ${EPOCH}"|nc ${GRAPHITEHOST}
fi  # GRAPHITE

exit 0

