Перейти к содержимому

Уведомление о завершении скрипта или бэкапа

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

Подготовьте уведомления

Сначала создайте и подтвердите исходящий канал для получателя. Затем создайте входящий канал, свяжите каналы и скопируйте публичный адрес. Установите CLI и добавьте в конфигурацию запись backup_ch с этим адресом.

Сначала проверьте отправку отдельно от бэкапа:

bash
depesher -v backup_ch "Проверка уведомления о бэкапе"

Сообщите об успехе

В Bash запустите свою команду, а после && — отправку уведомления:

bash
python3 my_best_backup.py &&
  depesher backup_ch "Бэкап выполнен успешно!"

Оболочка выполнит вторую команду только при коде завершения 0 у первой. Замените python3 my_best_backup.py собственной командой резервного копирования, импорта или обработки данных.

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

Сообщите и об ошибке

Чтобы различать успех и сбой, используйте отдельные ветки. Этот скрипт Bash сохраняет код завершения основной операции, даже если отправка уведомления не удалась:

bash
#!/usr/bin/env bash

if python3 my_best_backup.py; then
  task_status=0
  notification="Бэкап выполнен успешно!"
else
  task_status=$?
  notification="Ошибка бэкапа. Код завершения: $task_status"
fi

if ! depesher backup_ch "$notification"; then
  printf '%s\n' 'Не удалось отправить уведомление' >&2
fi

exit "$task_status"

Не заменяйте такую развилку цепочкой задача && уведомление_об_успехе || уведомление_об_ошибке: в ней сбой отправки первого уведомления тоже приведёт к сообщению об ошибке задачи.

Что включать в сообщение

Укажите название операции, окружение и результат. Например: «Бэкап production завершён, архив проверен» — если проверка действительно предусмотрена вашим скриптом. Для подробностей можно добавить ссылку на журнал операции.

Проверьте обе ветки

В тестовой копии скрипта замените команду бэкапа сначала на true, затем на false. Убедитесь, что тексты различаются, а код завершения равен соответственно 0 и 1. После этого верните настоящую команду.

Если сообщения нет, проверьте доставку. Для запуска по расписанию переходите к сценарию cron и worker.