Нужно помощь с добавлением функционала в bash скрипт (проверку хоста ping'ом)

Доброе утро коллеги. Кто может помочь с баш скриптом? Это скрипт с ботом для заббикса, для отправки алертов в телеграм. Хотелось бы добавить функционала, чтобы с телеге можно пингать хосты. Bash я не знаю, потому прошу помощи.

Сам скрипт:

#!/bin/bash
TOKEN='123'
which curl &>/dev/null
if [ $? -ne 0 ] ; then echo 'FAIL: curl not found.' && exit 1 ; fi
if [ $# -ne 3 ] ; then echo 'FAIL: Params not defined.' && echo 'Usage: zabbix-to-telegram-notify.sh TelegramID Subject Message' && exit 1 ; fi
CHAT_ID="$1"
SUBJECT="$2"
MESSAGE="$3"
curl -s --header 'Content-Type: application/json' --request 'POST' --data "{\"chat_id\":\"${CHAT_ID}\",\"text\":\"${SUBJECT}\n${MESSAGE}\"}" "https://api.telegram.org/bot${TOKEN}/sendMessage" | grep -q '"ok":false,'
if [ $? -eq 0 ] ; then exit 1 ; fi

Привет, я просто рядом сделал скрипт который проверяет на предмет 200-ого кода, в твоём случае можно сделать примерно так же.

Добавить проверку пинга, если ответа нет, слать в Телеграм. Тебе же это надо?

Ну типа того, только icmp. Хочется чтобы был функционал в одном скрипте. Тупо в телеге боту пишешь ping 192.168.1.1 или по имени хоста, он тебе в ответ отправляет адрес или имя запрашиваемого хоста и его статус - UP или DOWN.

Вставь в свой скрипт проверку на пинг, можно атким образом:

if ping -c 1 xxx.xxx.xx.x &> /dev/null
then
  echo "Host is UP"
else
  echo "Host is DOWN"
fi

Можно сделать перебор из листа с IP адресами например:

for i in `cat Hostlist`
do  
  if ping -c 1 $i &> /dev/null
  then
    echo "Host $i is UP"
  else
    echo "Host $i is DOWN"
  fi
done

Соответственно в UP / DOWN статусы вставляешь код по отправке уведомлений в Телеграм.

Попробовал, не работает.
Ну и тут я так понял ip адрес захардкажаный, а нужно чтобы любой адрес можно было пинговать хоть гугловские восьмерки хоть в локалки адреса. Как этот срипт(бот) будет понимать что это я ему оправил команда пинг и ответ прислать мне?

Погоди, ты хочешь прямо из бота телеграм пинговать хосты что-ли?

Ну да)
Короче, парни в другом чатике сказали, что это анрил делать в одном скрипте, типа нужно пилить отдельный скрипт.
Так ка я в этмо не шарую, я с ними согласился))
В итоге, нашёл вот такого бота https://github.com/andrius/telegram-bash-bot, но не понимаю как с него пинги пулять.

В общем это отдельная история вообще. И да, это отдельный скрипт, как я писал выше.

Тебе нужно сделать бота который будет принимать команды выполнять их и отправлять обратно результат в чат.

Для начала тебе нужно подтянуть уровень знаний по боотам, потом по башу (если брать этот фреймворк) и тогда картина прояснится.

Грубо:

Бот слушает команду, предположим /ping принимает от нее аргумент в виде IP адреса, пингует и возвращает результат в ваш chat.id

Логику я могу придумать, а вот реализовать\написать нет. Думал что это нет так геморно в реализации, по этому попросил помощи, у и баш я сам не знаю. Ладно, будем без этой фичи сидеть, хотя штука конечно прикольная.
В любом случае спасибо.

Здесь вопрос даже не баш уже на самом деле. Я тоже хотел написать “ping” бота, руки не дошли всё ещё к сожалению (

Кстати, реализацию возможно тебе будет проще сделать на другом языке, рассмотри такой вариант в том числе