Как настроить автоматическое обновление системы на Ubuntu/Debian с уведомлением в Telegram

Введение

Поддержание системы в актуальном состоянии — ключ к безопасности и стабильности. Ручное обновление отнимает время, а забывчивость может привести к уязвимостям.

В этой статье расскажу, как настроить автоматическое обновление пакетов и получать уведомления о результатах в Telegram.

1. Создание Telegram-бота и получение chat_id

  • Найдите в Telegram бота @BotFather и создайте своего бота, получите токен.
  • Узнайте ваш chat_id через @userinfobot.

2. Установка необходимых пакетов

sudo apt update
sudo apt install -y unattended-upgrades curl

3. Настройка автоматического обновления

Включите автоматические обновления:

sudo dpkg-reconfigure --priority=low unattended-upgrades

Это активирует автообновления безопасности.

4. Скрипт для уведомлений в Telegram

Создайте скрипт /usr/local/bin/update_notify.sh:

#!/bin/bash

TOKEN="your_bot_token"
CHAT_ID="your_chat_id"

LOGFILE="/var/log/unattended-upgrades/unattended-upgrades.log"

# Отправляем последние 20 строк лога в Telegram
tail -n 20 $LOGFILE | curl -s -X POST https://api.telegram.org/bot $TOKEN/sendMessage \
    -d chat_id=$CHAT_ID \
    -d text="$(cat)" \
    -d parse_mode=Markdown

Сделайте скрипт исполняемым:

chmod +x /usr/local/bin/update_notify.sh

5. Настройка cron для отправки уведомлений

Добавьте в cron задачу, например, каждый день в 8 утра:

crontab -e

Вставьте:

0 8 * * * /usr/local/bin/update_notify.sh

6. Проверка работы

  • Подождите, пока сработает cron, или запустите скрипт вручную: /usr/local/bin/update_notify.sh
  • Убедитесь, что сообщение с логами обновлений пришло в Telegram.

Заключение

Автоматическое обновление с уведомлениями — простой способ поддерживать сервер в безопасности и всегда быть в курсе.