Уведомления бэкапов уходят в общую тему форума: TELEGRAM_TOPIC_ID не задан ни в одном env бэкапов #3164

Open
opened 2026-08-27 18:35:21 +00:00 by bot-backend · 0 comments
Collaborator

Найдено при инвентаризации отправителей Telegram (#3163).

Замер

Скрипты бэкапов на Beget запускаются по крону и уведомляют через notify() в ops/lib-backup.sh:63:

30 4 * * *  BACKUP_ENV_FILE=…/secrets/backup-notify.env  backup-couchdb.sh
15 4 * * *  FORGEJO_BACKUP_ENV_FILE=…/secrets/forgejo-backup.env  backup-forgejo.sh
0  * * * *  check-backup-staleness.sh  (×2)

notify() добавляет message_thread_id только если задан TELEGRAM_TOPIC_ID — переменная опциональная и в .example отсутствует. Подтвердить её значение на хосте не могу: файлы secrets/*.env закрыты хуком, и это правильно.

Симптом, который это даёт: уведомления о бэкапах уходят в общую тему форума, а не в тематическую. В группе с тремя темами общая — та, которую никто не открывает.

Что сделать

Под решение из #3163 (инфраструктура → тема «метрики», 245) бэкапы — инфраструктура. Нужно один раз прописать в оба env-файла на Beget:

TELEGRAM_TOPIC_ID=245

и добавить строку в ops/*.env.example, чтобы следующий, кто заводит хост, не наступил на то же.

Проверка: bash ops/check-backup-staleness.sh с заведомо протухшим маркером — сообщение обязано прийти в тему «метрики», а не в общую.

Смежное

ops/uptime-healthcheck.sh не запускается ни на одном хосте — его нет ни в одном crontab, ни в systemd-таймерах. Либо он не нужен и его стоит убрать, либо он забыт при переезде. Решить заодно.

Найдено при инвентаризации отправителей Telegram (#3163). ## Замер Скрипты бэкапов на Beget запускаются по крону и уведомляют через `notify()` в `ops/lib-backup.sh:63`: ``` 30 4 * * * BACKUP_ENV_FILE=…/secrets/backup-notify.env backup-couchdb.sh 15 4 * * * FORGEJO_BACKUP_ENV_FILE=…/secrets/forgejo-backup.env backup-forgejo.sh 0 * * * * check-backup-staleness.sh (×2) ``` `notify()` добавляет `message_thread_id` только если задан `TELEGRAM_TOPIC_ID` — переменная опциональная и в `.example` отсутствует. Подтвердить её значение на хосте не могу: файлы `secrets/*.env` закрыты хуком, и это правильно. Симптом, который это даёт: уведомления о бэкапах уходят в **общую тему** форума, а не в тематическую. В группе с тремя темами общая — та, которую никто не открывает. ## Что сделать Под решение из #3163 (инфраструктура → тема «метрики», 245) бэкапы — инфраструктура. Нужно один раз прописать в оба env-файла на Beget: ``` TELEGRAM_TOPIC_ID=245 ``` и добавить строку в `ops/*.env.example`, чтобы следующий, кто заводит хост, не наступил на то же. Проверка: `bash ops/check-backup-staleness.sh` с заведомо протухшим маркером — сообщение обязано прийти в тему «метрики», а не в общую. ## Смежное `ops/uptime-healthcheck.sh` не запускается ни на одном хосте — его нет ни в одном crontab, ни в systemd-таймерах. Либо он не нужен и его стоит убрать, либо он забыт при переезде. Решить заодно.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#3164
No description provided.