#!/bin/bash
# tg-notify: оповещение в ТГ о падении systemd-юнита.
# Вызывается только через OnFailure=tg-notify@%n.service — руками не нужен.
set -u
UNIT="${1:?нет имени юнита}"
set -a; source /home/rasp/tg-notify.env; set +a

RESULT=$(systemctl show "$UNIT" -p Result --value 2>/dev/null)
CODE=$(systemctl show "$UNIT" -p ExecMainStatus --value 2>/dev/null)
WHEN=$(systemctl show "$UNIT" -p ExecMainExitTimestamp --value 2>/dev/null)
TAIL=$(journalctl -u "$UNIT" -n 12 --no-pager -o cat 2>/dev/null)

TEXT="🔴 Упал $UNIT
result=$RESULT, exit-code=$CODE
$WHEN

$TAIL

Разбор: ssh pi 'journalctl -u $UNIT -n 50'"
TEXT="${TEXT:0:3900}"

curl -s -m 30 -o /dev/null -w "tg-notify %{http_code}\n" -X POST \
  "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
  --data-urlencode "chat_id=$TELEGRAM_OWNER_USER_ID" \
  --data-urlencode "text=$TEXT"
