#!/bin/bash ####################################################################################################################### # Этот скрипт позволяет передать агенту zabbix текущую информацию по майнерам из HiveOS # Скрипт само по себе мало полезен, для работы необходим: # zabbix агент # конфиг файл к нему # zabbix сервер # шаблон к нему # # Скрипт умеет отдавать сводную информацию о запущенных майнерах в механизм discovery zabbix, для автоматического обнаружения запущенных майнеров # Скрипт умеет отдавать: # текущие количество валидных шар # текущие количество невалидных шар # текущие аптайм # текущие общий хешрейт майнера # # Внимание!!! Поддерживается только 1 или 2 одновременно работающих майнера на одном риге # # Этот скрипт был написан в консольном текстовом редакторе nano через консольный терминал putty, так что здесь очень качественный быдлокод # # Автор: SvC # Версия: 1.0.6.7 от 29.09.2021 # ####################################################################################################################### # получение json строки последнего состояния рига json=`tail -2 /var/log/hive-agent.log | grep ">" | cut -d '>' -f 2` if [[ $1 == '' ]]; then if [ `echo $json | jq '.params.miner2'` == 'null' ]; then m1=`echo $json | jq '.params.miner'` echo [ echo \{\"{#MINERID}\":\"1\",\"{#MINERNAME}\":$m1\} echo ] else #echo $json | jq '.params.miner' #echo $json | jq '.params.miner2' m1=`echo $json | jq '.params.miner'` m2=`echo $json | jq '.params.miner2'` echo [ echo \{\"{#MINERID}\":\"1\",\"{#MINERNAME}\":$m1\}, echo \{\"{#MINERID}\":\"2\",\"{#MINERNAME}\":$m2\} echo ] fi else if [[ $1 == 'valid' ]]; then if [[ $2 == '1' ]]; then echo $json | jq '.params.miner_stats.ar[0]' fi if [[ $2 == '2' ]]; then echo $json | jq '.params.miner_stats2.ar[0]' fi fi if [[ $1 == 'invalid' ]]; then if [[ $2 == '1' ]]; then echo $json | jq '.params.miner_stats.ar[2]' fi if [[ $2 == '2' ]]; then echo $json | jq '.params.miner_stats2.ar[2]' fi fi if [[ $1 == 'uptime' ]]; then if [[ $2 == '1' ]]; then echo $json | jq '.params.miner_stats.uptime' fi if [[ $2 == '2' ]]; then echo $json | jq '.params.miner_stats2.uptime' fi fi if [[ $1 == 'hs' ]]; then if [[ $2 == '1' ]]; then #hs=`echo $json | jq '.params.miner_stats.hs[0]'` hs=`echo $json | jq '.params.total_khs'` if [ `echo $json | jq '.params.miner'` == '"lolminer"' ]; then #hs=`echo $hs*100 | bc | cut -d "." -f 1` # проверно hs=$((hs/10)) else if [ `echo $json | jq '.params.miner'` == '"teamredminer"' ]; then hs=$((hs/10)) # проверно else if [ `echo $json | jq '.params.miner'` == '"phoenixminer"' ]; then hs=$((hs/10)) # проверено else if [ `echo $json | jq '.params.miner'` == '"nbminer"' ]; then hs=$((hs/10)) # проверено else if [ `echo $json | jq '.params.miner'` == '"gminer"' ]; then hs=$((hs/10)) # проверно fi fi fi fi fi #echo $json | jq '.params.miner_stats.hs[0]' echo $hs fi if [[ $2 == '2' ]]; then #hs=`echo $json | jq '.params.miner_stats2.hs[0]'` hs=`echo $json | jq '.params.total_khs2'` if [ `echo $json | jq '.params.miner2'` == '"lolminer"' ]; then #hs=`echo $hs*100 | bc | cut -d "." -f 1` # проверно hs=$((hs/10)) else if [ `echo $json | jq '.params.miner2'` == '"teamredminer"' ]; then hs=$((hs/10)) # проверено else if [ `echo $json | jq '.params.miner2'` == '"phoenixminer"' ]; then hs=$((hs/10)) # проверено else if [ `echo $json | jq '.params.miner2'` == '"nbminer"' ]; then hs=$((hs/1000)) # проверено else if [ `echo $json | jq '.params.miner2'` == '"gminer"' ]; then hs=$((hs/10)) # проверено fi fi fi fi fi #echo $json | jq '.params.miner_stats2.hs[0]' echo $hs fi fi fi