Автоматическое обновление для сервера Ubuntu Linux

Начальные требования

Серверная часть:

  • Ubuntu Server 18.04 LTS с установленными последними обновлениями. 
    • Проверено на Ubuntu Server 20.04 LTS

Клиентская часть:

  • Возможность подключения к серверу по ssh.
    • под ОС Linux используйте Терминал
    • под ОС Windows можно использовать PuTTY

Заходим на сервер по ssh:

ssh username@server-name

где username имя пользователя на сервере server-name. Вводим пароль для пользователя username.

Устанавливаем пакеты для автоматического обновления:

sudo apt install unattended-upgrades

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

sudo dpkg-reconfigure -plow unattended-upgrades

На вопрос "Скачивать и устанавливать обновления стабильного выпуска автоматически?" отвечаем "Да".

Редактируем конфигурационный файл для автоматических обновлений (другой метод): 

sudo mcedit /etc/apt/apt.conf.d/50unattended-upgrades

Изменяем значения следующих позиций на true и убираем комментарий вначале строки:

${distro_id}:${distro_codename}-updates;

//

Unattended-Upgrade::Remove-Unused-Kernel-Packages  "true";
Unattended-Upgrade::Remove-Unused-Dependencies  "true";
Unattended-Upgrade::Automatic-Reboot  "true";
Unattended-Upgrade::Automatic-Reboot-Time  "02:00";
Unattended-Upgrade::SyslogEnable  "true";

Редактируем конфигурационный файл отвечающий за периодичность запуска обновлений:

sudo mcedit /etc/apt/apt.conf.d/10periodic

Изменяем значения следующих позиций на "1":

APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";

Можно сделать все замены скопировав и запустив следующие команды. 

sudo sed -e 's|//\t"${distro_id}:${distro_codename}-updates";|\t"${distro_id}:${distro_codename}-updates";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -e 's|//Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";|Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -e 's|//Unattended-Upgrade::Remove-Unused-Dependencies "false";|Unattended-Upgrade::Remove-Unused-Dependencies "true";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -e 's|//Unattended-Upgrade::Automatic-Reboot "false";|Unattended-Upgrade::Automatic-Reboot "true";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -e 's|//Unattended-Upgrade::Automatic-Reboot-Time "02:00";|Unattended-Upgrade::Automatic-Reboot-Time "02:00";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -e 's|// Unattended-Upgrade::SyslogEnable "false";|Unattended-Upgrade::SyslogEnable "true";|g' -i /etc/apt/apt.conf.d/50unattended-upgrades

sudo sed -e 's|APT::Periodic::Download-Upgradeable-Packages "0";|APT::Periodic::Download-Upgradeable-Packages "1";|g' -i /etc/apt/apt.conf.d/10periodic
sudo sed -e 's|APT::Periodic::AutocleanInterval "0";|APT::Periodic::AutocleanInterval "1";|g' -i /etc/apt/apt.conf.d/10periodic

ПОМЕНЯЙТЕ "02:00" на нужное для вас время для перезагрузки сервера, если это будет необходимо после установки обновлений:

sudo sed -e 's|"02:00"|"04:00"|g' -i /etc/apt/apt.conf.d/50unattended-upgrades

Проверить работоспособность настроек автоматического обновления можно так:

sudo unattended-upgrades --dry-run

Просмотрите журнал автоматического обновления:

sudo cat /var/log/unattended-upgrades/unattended-upgrades.log

Печать