За статью спасибо - но полезность в этом КМК никакая...
Тогда уж лучше так: https://pastebin.com/edGXCjfh
КМК?
КМК - "как мне кажется".
Думаю так лучше!
Если пинуется "IP" то, пишем еденичку в MQTT.
Если не пингуется то, шлем "0".
Так же релизован лог. файл для записи что, когда, отвалилось лобо "подцепилось"! Правда нужно раскоментировать в коде нужные строки.
И все это завернуто в бесконечный цикл, который регулируется 5-ти секундными паузами (изменить на нужное время).
IPS='192.168.18.18' # "IP" который нужно пинговать.
mqtt_server='192.168.18.12' # Здесь пропишем "IP" адрес "MQTT" сервера.
function zerg_ping (){ # Функция "zerg_ping" которая пингует и результат пишет либо в лог.файл или отправляет на MQTT.
for IP_ADDRESS in ${IPS}; do
echo \n
echo "TEST FOR ${IP_ADDRESS}"
ping -q -c2 ${IP_ADDRESS} > /dev/null # Заскомментировать эту строку если нужно вести log.file
if [ $? -eq 0 ]
then
echo ${IP_ADDRESS} "Pingable" && mosquitto_pub -h $mqtt_server -t "IP-"$IPS -m "1" # Если пингуется пишем "1" в mqtt.
else
echo ${IP_ADDRESS} "Not Pingable" && mosquitto_pub -h $mqtt_server -t "IP-"$IPS -m "0" # Если не пингуется пишем "0" в mqtt.
fi
done
}
while true; do # Бесконечный цикл
read -p 'Runing "zerg_ping" function after pause in 5 seconds' -t 5
echo \n
echo "Run my function zerg_ping"
zerg_ping
done
Отличное решение. Может его оформите в своём блоге?
Please login to leave comments. Join us!