首先安装 unattended-upgrades 工具并启用:sudo apt update && sudo apt install unattended-upgrades,接着运行 sudo dpkg-reconfigure –priority=low unattended-upgrades 选择 Yes 启用自动更新;然后编辑 /etc/apt/apt.conf.d/50unattended-upgrades 配置文件,设置 Origins-Pattern 允许的安全源,可选配置 Package-Blacklist 限制特定包升级,启用 Remove-Unused-Dependencies 和 Automatic-Reboot 以自动清理依赖和定时重启;再通过 /etc/apt/apt.conf.d/20auto-upgrades 设置 APT::Periodic::Update-Package-Lists “1” 和 APT::Periodic::Unattended-Upgrade “1” 实现每日检查与升级,AutocleanInterval “7” 每周清理缓存;最后通过 tail /var/log/unattended-upgrades/unattended-upgrades.log 查看日志确保更新正常执行。
在linux系统中,保持系统和软件包的及时更新对安全性和稳定性至关重要。使用 unattended-upgrades 工具可以实现自动更新,特别是在服务器环境中,能够减少人为疏忽带来的风险。以下是配置 unattended-upgrades 的详细步骤。
安装 unattended-upgrades
大多数基于 debian 的系统(如 ubuntu 和 Debian)都支持 unattended-upgrades。首先确保该工具已安装:
sudo apt update
sudo apt install unattended-upgrades
安装过程中会自动启用默认配置。如果未自动启用,需要手动配置。
启用自动更新功能
运行以下命令启用自动更新:
sudo dpkg-reconfigure –priority=low unattended-upgrades
执行后会弹出一个对话框,选择 Yes 确认启用 unattended-upgrades。
配置自动更新规则
主要配置文件位于 /etc/apt/apt.conf.d/50unattended-upgrades,你可以编辑它来定义哪些更新可以自动安装:
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
关键配置项说明:
- Unattended-Upgrade::Origins-Pattern:定义允许自动更新的软件源。例如:
- Unattended-Upgrade::Package-Blacklist:列出不想自动更新的软件包。例如:
- Unattended-Upgrade::Remove-Unused-Dependencies:设置为 “true” 可自动删除不再需要的依赖包。
- Unattended-Upgrade::Automatic-Reboot:若设置为 “true”,当更新需要重启时会自动重启系统。可添加:
“origin=Debian,codename=${distro_codename},label=Debian-Security”;
“origin=Ubuntu,archive=${distro_codename}-security,label=Ubuntu”;
“vim”;
“libc6”;
如果留空,则不限制。注意:黑名单中的包不会自动升级,但不会阻止通过手动 apt upgrade 更新。
Unattended-Upgrade::Automatic-Reboot “true”;
Unattended-Upgrade::Automatic-Reboot-Time “02:00”;
设置更新时间与频率
自动更新的执行频率由 APT 的配置文件控制。编辑以下文件:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
写入以下内容以启用每日检查:
APT::Periodic::Update-Package-Lists “1”;
APT::Periodic::Unattended-Upgrade “1”;
APT::Periodic::AutocleanInterval “7”;
APT::Periodic::Unattended-Upgrade “1”;
含义:
- Update-Package-Lists “1”:每天更新软件包列表。
- Unattended-Upgrade “1”:每天执行自动升级。
- AutocleanInterval “7”:每7天清理一次旧的 .deb 安装包。
基本上就这些。配置完成后,系统将自动处理安全更新。你可以通过查看日志确认运行情况:
tail /var/log/unattended-upgrades/unattended-upgrades.log
不复杂但容易忽略的是日志检查和黑名单设置,建议定期查看日志确保更新正常执行。