温馨提示×

ubuntu定时更新软件包方法

小樊
47
2026-02-21 18:44:34
栏目: 智能运维

在 Ubuntu 中定时更新软件包,主要有两种方案,您可以根据需求选择。

方案一:自动安装安全更新 (推荐)

此方法通过 unattended-upgrades 工具实现,是 Ubuntu 官方推荐的方案,尤其适合服务器,可以自动安装安全补丁并清理旧文件。

1. 安装与启用

bash

更新软件源并安装 unattended-upgrades

sudo apt update sudo apt install unattended-upgrades

启用自动更新(交互式向导)

sudo dpkg-reconfigure --priority=low unattended-upgrades

在弹出的向导中,选择 Yes 以启用自动更新。

2. 配置更新源

编辑配置文件,指定需要自动更新的软件源。 bash sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

找到 Unattended-Upgrade::Allowed-Origins 部分,确保至少启用了安全更新源。以 22.04 (jammy) 为例: json Unattended-Upgrade::Allowed-Origins { “${distro_id}:${distro_codename}-security”; // “${distro_id}:${distro_codename}-updates”; // 如需更新常规补丁,取消此行注释 // “${distro_id}ESM:${distro_codename}”; // 订阅 ESM 时启用 };

常用可选配置:

  • 自动移除无用依赖 json Unattended-Upgrade::Remove-Unused-Dependencies “true”;

  • 自动重启系统 (内核或关键组件更新后需要) json Unattended-Upgrade::Automatic-Reboot “true”; Unattended-Upgrade::Automatic-Reboot-Time “02:00”; // 设置在凌晨 2 点重启

3. 配置更新频率

编辑周期任务配置文件。 bash sudo nano /etc/apt/apt.conf.d/20auto-upgrades

确保内容如下,表示每天检查、下载并自动升级: ini APT::Periodic::Update-Package-Lists “1”; // 每天更新软件包索引 APT::Periodic::Download-Upgradeable-Packages “1”; // 每天下载可升级的包 APT::Periodic::AutocleanInterval “7”; // 每 7 天清理一次本地缓存 APT::Periodic::Unattended-Upgrade “1”; // 每天执行自动升级

4. 启动并验证

  • 启动服务 bash sudo systemctl enable --now unattended-upgrades

  • 模拟运行 (试运行) bash sudo unattended-upgrades --dry-run --debug

  • 查看日志 bash tail -f /var/log/unattended-upgrades/unattended-upgrades.log


方案二:定时执行自定义命令

如果您需要更灵活的更新策略(如更新所有包、在特定时间执行),可以使用 cron 定时任务。

1. 编辑 root 用户的 crontab

bash sudo crontab -e

2. 添加定时任务

根据需求选择以下示例添加到文件末尾:

  • 示例 1:每天凌晨 3 点更新所有软件包 text 0 3 * * * /usr/bin/apt update && /usr/bin/apt -y full-upgrade && /usr/bin/apt -y autoremove && /usr/bin/apt -y autoclean

  • 示例 2:每 6 小时检查并升级安全更新 text 0 */6 * * * /usr/bin/apt update && /usr/bin/apt -y upgrade && /usr/bin/apt -y autoremove && /usr/bin/apt -y autoclean

⚠️ 注意 直接在 cron 中执行 apt upgrade 可能会因锁文件或交互式提示导致失败。对于生产环境,强烈推荐使用方案一 unattended-upgrades,它专为无人值守场景设计,更加稳定可靠。

0