系统要长久稳定,安全运行,就会面对经常的系统升级,打补丁等。服务器运维人员必懂的升级更新配置方法。
以下是一套直接复制就能用、官方推荐、只更安全补丁、不瞎升级软件的完整步骤(Ubuntu 22.04/20.04 通用)。
一、安装并开启自动安全更新(核心)
# 1. 更新源并安装工具
sudo apt update
sudo apt install -y unattended-upgrades
# 2. 交互式启用(选 Yes)
sudo dpkg-reconfigure --priority=low unattended-upgrades
- 弹出界面:选 Yes → 回车。
- 作用:自动创建
/etc/apt/apt.conf.d/20auto-upgrades,开启每日安全更新。
二、确认自动更新频率(可直接用)
cat /etc/apt/apt.conf.d/20auto-upgrades
默认内容(不用改):
APT::Periodic::Update-Package-Lists "1"; # 每天拉一次补丁列表
APT::Periodic::Unattended-Upgrade "1"; # 每天自动装安全补丁
如需每周清理旧包(推荐):
sudo vim /etc/apt/apt.conf.d/20auto-upgrades
末尾加一行:
APT::Periodic::AutocleanInterval "7";
保存退出(Ctrl+O→回车→Ctrl+X)。
三、严格限定:只更安全补丁,不更普通软件(重要)
编辑主配置:
sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
找到 Allowed-Origins,确保只留 security 行,其他全部注释(加 //):
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
- 只装安全补丁(高危漏洞、内核安全更新)
- 不升级普通软件(如 Nginx、PHP、WordPress 相关包),避免业务挂掉。
可选(推荐开启):
Unattended-Upgrade::Remove-Unused-Dependencies "true"; # 自动清理无用依赖
保存退出。
四、控制自动重启(服务器建议关闭)
默认不会自动重启(安全)。如需更新内核后凌晨 2 点自动重启(个人测试机可用):
sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
取消注释并改为:
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
服务器建议保持 false,避免业务中断。
五、测试与验证(确保生效)
1. 模拟运行(不真安装)
sudo unattended-upgrade --dry-run --debug
输出看到 All upgrades installed 且只处理 security 源 → 配置正确。
2. 查看服务状态
sudo systemctl status unattended-upgrades
显示 active (running) → 正常。
3. 看历史日志(排查问题)
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
六、一键复制(直接粘贴执行)
sudo apt update
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
echo 'APT::Periodic::AutocleanInterval "7";' | sudo tee -a /etc/apt/apt.conf.d/20auto-upgrades
sudo sed -i '/updates"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i '/proposed"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades
sudo sed -i '/backports"/s/^/\/\//' /etc/apt/apt.conf.d/50unattended-upgrades
总结
做完以上:
- ✅ 系统每天自动打安全补丁(防漏洞)
- ✅ 不升级业务软件(Nginx/PHP/MySQL 不动)
- ✅ 自动清理旧包,不占磁盘
- ✅ 可查日志、可测试、可控重启