В этой статье разберём:
- какие обновления бывают в Ubuntu;
- как проверить доступные обновления вручную;
- как установить и включить
unattended-upgrades; - как настроить автоматическую установку обновлений безопасности;
- как проверить, что автообновления действительно работают;
- где смотреть логи и какие ошибки бывают.
Какие обновления бывают в Ubuntu
В Ubuntu пакеты обновляются через систему apt. Обновления бывают разными, и важно не смешивать всё в одну кучу.
-
Обновления безопасности — исправляют уязвимости в системных пакетах, OpenSSH, OpenSSL, ядре, библиотеках и других компонентах.
-
Обычные обновления — исправляют ошибки, улучшают работу пакетов, но не всегда критичны для безопасности.
-
Обновления ядра — могут требовать перезагрузки VPS.
-
Обновления сервисов — например, Nginx, Apache, PHP-FPM, MariaDB. После них служба может быть перезапущена.
На сервере безопаснее автоматически ставить в первую очередь security-обновления, а крупные изменения контролировать вручную. Так меньше шанс получить сюрприз на боевом VPS.
Проверяем обновления вручную
Перед настройкой автоматических обновлений полезно вручную посмотреть, что вообще доступно на сервере.
sudo apt update
apt list --upgradable
Первая команда обновляет список пакетов, вторая показывает, какие пакеты можно обновить.
Если список большой, не спешите сразу запускать полное обновление. Для начала можно посмотреть, есть ли среди пакетов важные системные компоненты: openssh-server, openssl, linux-image, nginx, apache2, php, mariadb.
Важно: команда apt list --upgradable только показывает список. Она ничего не устанавливает.
Устанавливаем unattended-upgrades
Для автоматической установки обновлений в Ubuntu используется пакет unattended-upgrades. Он может быть уже установлен, но лучше проверить и поставить явно.
sudo apt update
sudo apt install -y unattended-upgrades apt-listchanges
Пакет unattended-upgrades отвечает за автоматическую установку обновлений, а apt-listchanges помогает показывать важные изменения в пакетах.
Проверим, что пакет установлен:
dpkg -l | grep unattended-upgrades
Включаем автоматические обновления
Основной файл, который включает автоматическое обновление списков пакетов и запуск unattended-upgrades:
/etc/apt/apt.conf.d/20auto-upgrades
Откроем его:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Вставляем или проверяем такие строки:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
Что это значит:
-
Update-Package-Lists "1"— ежедневно обновлять список доступных пакетов; -
Unattended-Upgrade "1"— ежедневно запускать автоматическую установку разрешённых обновлений.
После сохранения можно проверить содержимое файла:
cat /etc/apt/apt.conf.d/20auto-upgrades
Настраиваем, какие обновления устанавливать автоматически
Главный файл настроек unattended-upgrades находится здесь:
/etc/apt/apt.conf.d/50unattended-upgrades
Открываем:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Внутри есть блок Unattended-Upgrade::Allowed-Origins. Для базовой безопасной схемы обычно достаточно включить security-обновления:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
В некоторых версиях Ubuntu строки могут выглядеть чуть иначе и быть уже добавлены. Главное — чтобы была разрешена ветка -security.
Также полезно проверить параметры удаления лишних зависимостей:
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";
Эти строки помогают автоматически убирать пакеты, которые больше не нужны после обновлений.
Совет: не включайте автоматическую установку всех обновлений подряд, если сервер боевой. Для начала лучше ограничиться обновлениями безопасности.
Настройка автоматической перезагрузки
Некоторые обновления, особенно обновления ядра, требуют перезагрузки. unattended-upgrades может перезагружать сервер автоматически, но на боевом VPS это нужно включать осторожно.
В файле /etc/apt/apt.conf.d/50unattended-upgrades есть параметры:
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Варианты:
-
"false"— сервер сам не перезагружается, вы делаете это вручную; -
"true"— сервер может перезагрузиться автоматически, если это нужно после обновлений; -
Automatic-Reboot-Time— время перезагрузки, например ночью.
Для большинства VPS лучше оставить:
Unattended-Upgrade::Automatic-Reboot "false";
А необходимость перезагрузки проверять вручную:
test -f /var/run/reboot-required && cat /var/run/reboot-required
Если файл существует, значит системе нужна перезагрузка.
Проверяем работу без реального обновления
Перед тем как доверить серверу автоматические обновления, полезно сделать тестовый запуск. Он покажет, какие действия были бы выполнены.
sudo unattended-upgrade --dry-run --debug
Ключи:
-
--dry-run— тестовый режим, без реальной установки пакетов; -
--debug— подробный вывод, чтобы было видно, что проверяется.
Вывод может быть довольно длинным. Это нормально. Важно, чтобы не было явных ошибок конфигурации.
Проверяем таймеры автоматических обновлений
В современных Ubuntu автоматические задачи apt часто запускаются через systemd-таймеры. Посмотреть их можно так:
systemctl list-timers | grep apt
Обычно там можно увидеть таймеры вроде:
apt-daily.timer
apt-daily-upgrade.timer
Они отвечают за регулярное обновление списков пакетов и запуск обновлений.
Если нужно посмотреть статус конкретного таймера:
systemctl status apt-daily.timer
systemctl status apt-daily-upgrade.timer
Где смотреть логи автоматических обновлений
Если нужно проверить, что именно обновлялось автоматически, смотрите логи unattended-upgrades:
sudo ls -l /var/log/unattended-upgrades/
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log
Также полезны общие логи apt:
sudo tail -n 50 /var/log/apt/history.log
sudo tail -n 50 /var/log/apt/term.log
В них можно увидеть, какие пакеты были установлены или обновлены, когда это произошло и были ли ошибки.
Как вручную обновлять сервер вместе с автообновлениями
Автоматические security-обновления не отменяют ручное обслуживание сервера. Время от времени всё равно полезно заходить и проверять общую ситуацию.
Стандартная ручная проверка:
sudo apt update
apt list --upgradable
Ручное обновление всех пакетов:
sudo apt upgrade
Удаление больше не нужных зависимостей:
sudo apt autoremove
Проверка необходимости перезагрузки:
test -f /var/run/reboot-required && cat /var/run/reboot-required
Такой подход удобен: критичные security-патчи ставятся автоматически, а крупные обновления вы контролируете вручную.
Что лучше не делать
-
Не включайте автоматическое обновление всего подряд без понимания
На боевом сервере обновление любого пакета может затронуть сервис. Лучше начать с security-обновлений.
-
Не включайте автоматическую перезагрузку днём
Если сервер обслуживает сайт или магазин, внезапная перезагрузка в рабочее время может создать простой.
-
Не забывайте про резервные копии
Перед крупными ручными обновлениями лучше иметь актуальный бэкап или snapshot VPS.
-
Не игнорируйте логи
Если обновления не применяются или падают с ошибками, это нужно увидеть раньше, чем проблема накопится.
Частые ошибки и решения
-
unattended-upgrade: command not found
Пакет не установлен:
sudo apt update sudo apt install -y unattended-upgrades -
Автообновления не запускаются
Проверьте файл
20auto-upgradesи таймеры:cat /etc/apt/apt.conf.d/20auto-upgrades systemctl list-timers | grep apt -
Нет логов в /var/log/unattended-upgrades/
Возможно, автообновления ещё не запускались или пакет только что установлен. Выполните тестовый запуск:
sudo unattended-upgrade --dry-run --debug -
После обновления требуется перезагрузка
Проверьте:
test -f /var/run/reboot-required && cat /var/run/reboot-requiredЕсли сервер боевой, перезагрузку лучше запланировать на удобное время.
Итоги
-
Разобрались, какие обновления бывают в Ubuntu и почему security-патчи важны для VPS.
-
Установили
unattended-upgradesи включили автоматическую проверку обновлений. -
Настроили файл
20auto-upgradesи проверили параметры50unattended-upgrades. -
Проверили работу через
--dry-run, systemd-таймеры и логи. -
Разобрали, почему автоматическую перезагрузку лучше включать осторожно.
Вывод: автоматические обновления на Ubuntu VPS полезны, если настроены аккуратно. Оптимальный вариант для большинства серверов — автоматически ставить обновления безопасности, а крупные обновления и перезагрузки выполнять вручную в удобное время.