淄博市万年长

如何配置Ubuntu无人值守升级? 手动操作实现Ubuntu自动升级技巧

2026-03-29 23:07:02 浏览次数:0
详细信息

一、安装无人值守升级包

sudo apt update
sudo apt install unattended-upgrades

二、基本配置

1. 主要配置文件

编辑主配置文件:

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

2. 关键配置选项

# 允许自动升级的软件源(默认已包含安全更新)
Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}-security";
    # 如果需要自动升级所有更新,取消以下注释:
    # "${distro_id}:${distro_codename}-updates";
    # "${distro_id}:${distro_codename}-proposed";
    # "${distro_id}:${distro_codename}-backports";
};

# 自动重启(如果需要)
# Unattended-Upgrade::Automatic-Reboot "false";
# 自动重启时间
# Unattended-Upgrade::Automatic-Reboot-Time "02:00";

# 删除不需要的依赖包
Unattended-Upgrade::Remove-Unused-Dependencies "true";

# 自动删除旧内核(建议开启)
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

# 更新后发送邮件通知(需要安装mailutils)
# Unattended-Upgrade::Mail "admin@example.com";
# Unattended-Upgrade::MailOnlyOnError "true";

三、启用自动升级

编辑自动升级策略文件:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

添加以下内容:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

各项参数说明:

四、手动操作技巧

1. 测试配置

# 测试配置但不实际执行
sudo unattended-upgrades --dry-run --debug

# 手动立即执行一次升级
sudo unattended-upgrades

2. 查看日志

# 查看升级日志
cat /var/log/unattended-upgrades/unattended-upgrades.log
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log

3. 临时禁用

# 临时禁用自动升级
sudo systemctl stop unattended-upgrades
sudo systemctl disable unattended-upgrades

# 重新启用
sudo systemctl enable unattended-upgrades
sudo systemctl start unattended-upgrades

五、高级配置选项

1. 黑白名单配置

/etc/apt/apt.conf.d/50unattended-upgrades 中添加:

# 黑名单(不自动升级的包)
Unattended-Upgrade::Package-Blacklist {
    "kernel";
    "mysql-server";
    "nginx";
};

# 白名单(只升级指定的包)
# Unattended-Upgrade::Package-Whitelist {
#     "openssh-server";
#     "nginx";
# };

2. 邮件通知配置

安装邮件工具并配置:

sudo apt install mailutils bsd-mailx

# 在配置文件中添加
Unattended-Upgrade::Mail "your-email@example.com";
Unattended-Upgrade::MailReport "always";  # 可选:on-change, only-on-error

六、定时任务配置

无人值守升级使用 systemd 定时器,查看状态:

# 查看定时器状态
systemctl list-timers | grep unattended

# 查看服务状态
sudo systemctl status unattended-upgrades

七、验证配置

检查配置是否生效:

# 验证配置
sudo unattended-upgrades -v

# 查看APT定时任务配置
cat /etc/cron.daily/apt-compat

注意事项

生产服务器谨慎使用:建议先在测试环境验证 重要服务:数据库、Web服务器等关键服务建议手动升级 磁盘空间:确保有足够的磁盘空间存放旧内核和缓存 备份:重要系统配置前做好备份 监控:配置邮件通知以便及时了解升级状态

快速设置脚本

创建一键设置脚本 setup-auto-upgrade.sh

#!/bin/bash
echo "安装unattended-upgrades..."
sudo apt update
sudo apt install -y unattended-upgrades

echo "配置自动升级..."
sudo sh -c 'cat > /etc/apt/apt.conf.d/20auto-upgrades << EOF
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";
EOF'

echo "启用安全更新..."
sudo dpkg-reconfigure --priority=low unattended-upgrades

echo "配置完成!"
echo "查看状态:systemctl status unattended-upgrades"

给脚本执行权限并运行:

chmod +x setup-auto-upgrade.sh
sudo ./setup-auto-upgrade.sh

这样配置后,您的Ubuntu系统将自动处理安全更新,减少手动维护工作量,同时保持系统安全性。

相关推荐