Показать статистику
0 голосов
от (320 баллов)

У меня появилась мысль установить на сервер telegram-cli и через него отправлять уведомления к себе на смартфон. Хочу это сделать по причине, что на почту не всегда есть возможность и проверить, а так можно сделать, чтоб письмо "кричало" как-то не выходит.

Если пользоваться телегой, после его накрутки всё нормально отправляет. Написал по примеру скрипт на который отправляются сообщения. Добавил его в скрипт который проверяет пингуется ли один IP и в случае если нет то отправляет сообщения.

Если все это просто запускать напрямую - все работает, сообщения отсылаются. Если же скрипт запускать из под Крона, то в ответ тишина.

Крон

*/1 *   * * *   root    /etc/getstatus.sh

Код: 

#!/bin/bash

HOSTS=99.99.69.13
# no ping request
COUNT=6
for myHost in $HOSTS
do
  count=$(ping -c $COUNT $myHost | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
  if [ $count -eq 0 ]
        then
        /usr/src/tg/viacron/telegram_standalone.sh "ALERT! Internet is Down" &> /dev/null
  fi
done

Код: 

#!/bin/bash
# See
# https://github.com/gnumoksha/zabbix_utils/blob/master/gnu%2Blinux/alertscripts/

MAIN_DIRECTORY="/usr/src/tg/viacron/"
SUBJECT=$1

cd $MAIN_DIRECTORY

if [[ $? -ne 0 ]]; then
        echo "Error to enter in the main directory"
        exit 1
fi

./telegram-cli -k tg-server.pub -WR -e "msg @tarya $SUBJECT" || exit 1

exit 0

И тишина.

Подскажите чего так если кто знает.

576 просмотров 1 ответов

1 Ответ

0 голосов
от (480 баллов)

Есть несколько вопросов: от рута или от себя любимого рабоатет?

в логах что находится?

journalctl -b0 | grep -i cron

После того, как разберётесь с этим, останется сделать последнее - это просто разлогиниться от Телеграмма чтоб залогиниться от другого имени и отправлять себе уведомления, иначе если слать самому себе то в телефоне не пикает ничего просто сообщения падают в "драфты". А нужно чтоб было "ау". Ну а как розлогиниться никто толком не знает.

Re: Скрипт не работает через Cron

можно просто бота создать и отправлять от его имени.

А так-то я для себя такой скриптик набросал - никакие telegram-cli не нужны!

Код: Bash

#!/bin/bash

apiToken='XXXXXX'
chatId='XXXXXX'

message=$( cat )


if [[ "$message" ]]; then
    curl -sf -X POST "https://api.telegram.org/bot$apiToken/sendMessage" \
    -d text="$message" \
    -d chat_id=$chatId &> /dev/null || echo "Err."
fi
...