Категория: Обновления и обслуживаниеОбновлено 2026-10-27

unattended-upgrades

unattended-upgrades это пакет для Debian и Ubuntu, автоматически устанавливающий обновления безопасности по расписанию, без необходимости вручную заходить на сервер и запускать обновление.

Четыре команды терминала, показывающие, что unattended-upgrades настроен, запущен по расписанию, проверен dry run и пишет журнал
Установленный пакет не равен рабочей рутине: проверьте конфигурацию, таймеры, dry run и журнал.

Что он покрывает по умолчанию, а что нет

В большинстве стандартных конфигураций unattended-upgrades автоматически устанавливает обновления безопасности, но оставляет остальные, не связанные с безопасностью обновления пакетов для ручной проверки, что делает автоматическое поведение сфокусированным именно на закрытии известных уязвимостей.

Проблема перезагрузки

Некоторые обновления безопасности, особенно обновления ядра, полностью вступают в силу только после перезагрузки. unattended-upgrades можно настроить на автоматическую перезагрузку в запланированное время, но многие серверы оставляют это отключённым, тихо работая на старом ядре в памяти, хотя обновлённое уже установлено на диске.

Как безопасно настроить unattended-upgrades, показано здесь: руководство по управлению патчами сервера.

Как убедиться, что оно работает: dry run, таймеры и журналы

Установленный пакет ещё не означает работающий процесс обновлений. Эти четыре команды показывают, что unattended-upgrades настроен, запланирован и действительно что-то делает:

apt-config dump | grep -E 'APT::Periodic|Unattended-Upgrade'
systemctl list-timers 'apt-daily*'
sudo unattended-upgrade --debug --dry-run
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log

Первая команда выводит действующую конфигурацию apt, где для ежедневного запуска оба параметра, APT::Periodic::Update-Package-Lists и APT::Periodic::Unattended-Upgrade, должны быть равны "1", как объясняет README проекта. На вики Debian названы два задействованных таймера systemd: apt-daily.timer скачивает обновления, а apt-daily-upgrade.timer их устанавливает. Согласно странице руководства unattended-upgrade, --dry-run имитирует установку, ничего не меняя, а --debug добавляет подробности в журнал. Читайте этот журнал регулярно, а не только после поломки, как описано в руководстве по управлению патчами.

Пакет, который остаётся неустановленным, обычно ждёт по причине, которую назовёт журнал. README сообщает, что unattended-upgrades не ставит пакет, чьи зависимости нельзя получить из разрешённых источников, и откладывает любой пакет, который задал бы вопрос о конфигурационном файле. Такие отложенные пакеты нужно довести до конца вручную в окне обновлений.

Тонкая настройка без конфликтов при будущих обновлениях

Не правьте поставляемый файл /etc/apt/apt.conf.d/50unattended-upgrades напрямую. README проекта советует создать отдельный фрагмент, который сортируется после него, например 52unattended-upgrades-local: иначе обновления пакета могут конфликтовать с вашими правками. Небольшой файл переопределений может выглядеть так:

// /etc/apt/apt.conf.d/52unattended-upgrades-local
Unattended-Upgrade::Package-Blacklist {
    "postgresql";
};
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Три детали из README легко пропустить. По умолчанию обновляются только архивы main и security, поэтому для пакетов из сторонних репозиториев нужна запись в Origins-Pattern, а чтобы заменить стандартный список, а не дополнить его, его нужно сначала очистить. Пакет из чёрного списка теперь обновляется вручную, так что включите его в окно обновлений. И Automatic-Reboot-Time по умолчанию равен "now", поэтому перед включением перезагрузок задайте тихий час явно; перезагрузка выполняется только если после обновления существует файл /var/run/reboot-required.

Связанные термины: Управление обновлениями, Окно обновлений, Live patching ядра, N-day эксплойт.

Часто задаваемые вопросы

Перезагружает ли unattended-upgrades сервер автоматически?

Только если это явно настроено через параметр Unattended-Upgrade::Automatic-Reboot; по умолчанию он обычно устанавливает обновления без перезагрузки.

Это инструмент только для одного дистрибутива?

Это конкретно пакет для Debian и Ubuntu; у других дистрибутивов есть свои аналоги, например dnf-automatic на системах на базе RHEL.

Как понять, что unattended-upgrades реально успешно работает?

Проверьте /var/log/unattended-upgrades/, где записывается, какие именно пакеты были проверены и обновлены при каждом запуске.

Где хранить настройки unattended-upgrades?

В отдельном файле в /etc/apt/apt.conf.d/, который сортируется после 50unattended-upgrades, например 52unattended-upgrades-local. README проекта рекомендует это, чтобы обновления поставляемого файла не конфликтовали с вашими изменениями.

Можно ли проверить unattended-upgrades, ничего не устанавливая?

Да. Выполните sudo unattended-upgrade --debug --dry-run: команда имитирует запуск, а подробности о том, что было бы сделано, смотрите в /var/log/unattended-upgrades/unattended-upgrades.log.

Хотите увидеть, в каком состоянии ваш сервер?

Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.

Получить бесплатную проверку сервераОткрыть Security Lab