Уведомление о завершении скрипта или бэкапа
Депешер помогает узнать о завершении долгой команды, не проверяя терминал вручную. Например, после резервного копирования скрипт отправляет сообщение в 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.