53 lines
1.5 KiB
Bash
Executable File
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
|
|
|