#!/bin/bash source ~/.mysql-grafana.conf #PLUGINS="1wire ina219 433mhz" PLUGINS="1wire ina219 433mhz" # https://stackoverflow.com/a/1482133 SCRIPT_PATH=$(dirname -- "$( readlink -f -- "$0"; )";) SOURCE=$(hostname -s) for PLUGIN in ${PLUGINS}; do echo "Processing ${PLUGIN}..." PLUGIN_ENV=MUNIN_LIBDIR=${SCRIPT_PATH} PLUGIN_CONF="${SCRIPT_PATH}/conf.d/${PLUGIN}" if [ -f ${PLUGIN_CONF} ]; then while IFS="" read -r p || [ -n "$p" ] do #printf '%s\n' "$p" if [[ $p == env.* ]]; then PARAM=${p##env.} # Match longest pattern from front -> everthing after the starting 'env.' PARAM=${PARAM%% *} # Match longest pattern from back -> everything before the first ' ' VALUE=${p#* } # Match shortest pattern from front -> everything after the first ' ' PLUGIN_ENV+=" ${PARAM}=${VALUE}" fi done < ${PLUGIN_CONF} fi CMD="${PLUGIN_ENV} ${SCRIPT_PATH}/plugins/${PLUGIN}" #echo "${CMD}" DATA=$(eval $CMD) #echo "-----------------" #echo "$DATA" #echo "-----------------" TABLE_NAME="home_${PLUGIN}" # default IFS=$'\n'; for LINE in ${DATA}; do # parse data and insert to database #echo $LINE SQL=$(echo $LINE | sed -E "s/(.*)\.(.*) (.*)/INSERT INTO ${TABLE_NAME} (source, metric, value) VALUES (\"${SOURCE}\",\"\1\", \"\3\");/") echo $SQL echo $SQL | mysql --host="192.168.0.12" --database="${DATABASE}" --user="${USER}" --password="${PASSWORD}" done # LINE done # PLUGINS