#!/bin/bash source ~/.mysql-grafana.conf PLUGINS="1wire 433mhz ina219" #PLUGINS="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} echo "${PLUGIN_ENV}" fi DATA=$(env -i ${PLUGIN_ENV} plugins/${PLUGIN}) 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