53 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
source ~/.mysql-grafana.conf
PLUGINS="1wire 433mhz"
#PLUGINS="433mhz ina219"
# 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} | tail -n +2 | head -n -1)
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