Автоматические обновления безопасности
Поставьте пакет — в Debian автоматические обновления включаются вместе с ним:
sudo apt update
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgradesПоследняя команда спрашивает, включить ли автоматическую загрузку и установку обновлений, — ответьте «Да». Она записывает (или проверяет) файл /etc/apt/apt.conf.d/20auto-upgrades с двумя строками:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";"1" — делать каждый день: обновлять список пакетов и ставить обновления. "0" — выключено.
Что ставится
Настройки — в файле /etc/apt/apt.conf.d/50unattended-upgrades. По умолчанию в Debian ставятся:
- обновления безопасности (
trixie-securityилиbookworm-security); - исправления основного архива, которые приходят с корректирующими выпусками (13.1, 13.2…).
Срочные исправления (-updates) и backports по умолчанию не ставятся — для них в файле есть закомментированные строки. Переход на новый выпуск unattended-upgrades не делает никогда.
Проверить, что работает
sudo unattended-upgrade --dry-run --debug
systemctl list-timers 'apt-daily*'Первая команда показывает, что было бы установлено, ничего не ставя. Вторая — когда сработают таймеры: apt-daily скачивает список пакетов, apt-daily-upgrade ставит обновления.
Что уже было поставлено, записано в журнале:
sudo less /var/log/unattended-upgrades/unattended-upgrades.logПерезагрузка
Новое ядро и некоторые библиотеки начинают работать только после перезагрузки, а сама unattended-upgrades по умолчанию компьютер не перезагружает. Разрешить перезагрузку в заданное время — своим файлом настроек (его ещё нет — nano создаст его при сохранении):
sudo nano /etc/apt/apt.conf.d/52unattended-upgrades-localВ файле — две строки: разрешить перезагрузку и задать её время.
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";Перезагрузка случится, только если обновление её требует, — например, после установки нового ядра (тогда появляется файл /var/run/reboot-required). Файлы в /etc/apt/apt.conf.d/ читаются по порядку имён, поэтому строки из 52… действуют поверх 50…, а сам файл 50unattended-upgrades остаётся нетронутым и не будет конфликтовать с обновлениями пакета. Проверить, что настройка прочиталась:
apt-config dump | grep -i automatic-rebootАвтоматическая перезагрузка прерывает работу всех программ и пользователей на сервере. Включайте её, только если службы сами поднимаются после загрузки, а время перезагрузки выбрано на часы без нагрузки.
Подводные камни
- Изменённые файлы настроек. Если при обновлении пакета был бы вопрос о файле настроек, который вы правили, unattended-upgrades такой пакет пропускает и пишет в журнал, что его нужно обновить вручную (
needs to be upgraded manually). - Выключенный компьютер. Таймеры срабатывают, когда компьютер включён; пропущенное наверстается при следующем включении.
- Ручные обновления всё равно нужны. Время от времени выполняйте
sudo apt updateиsudo apt upgradeсами, чтобы получать и остальные обновления. - Пакет
apt-listchangesв связке с почтой (Unattended-Upgrade::Mail) может присылать отчёт о каждом обновлении — если на сервере настроена отправка почты.