ubuntu自动更新--unattended-upgrades

ubuntu自动更新--unattended-upgrades

  • [1 介绍](#1 介绍)
  • [2 发展历程](#2 发展历程)
  • [3 配置与使用](#3 配置与使用)
  • [4 disable Auto update](#4 disable Auto update)
  • 参考

1 介绍

Unattended-Upgrades 是一个用于自动更新 Debian 及其衍生系统(如 Ubuntu)的工具。它的主要功能是自动检查、下载并安装系统更新,特别是安全更新,从而确保系统的安全性和稳定性。该工具通过后台运行,无需用户干预,大大简化了系统维护工作。

2 发展历程

Unattended-Upgrades 最初是为了简化 Debian 系统的安全更新流程而开发的。随着 Ubuntu 的发展,它逐渐成为 Ubuntu 系统中默认安装的组件之一。从 Ubuntu 16.04 开始,Unattended-Upgrades 的更新触发机制从传统的 cron 定时任务转变为通过 systemd 的 timer unit 来实现。这种改进使得更新任务的调度更加灵活和高效。

3 配置与使用

安装:可以通过命令 sudo apt-get install unattended-upgrades 安装该工具。

配置:主要配置文件位于 /etc/apt/apt.conf.d/50unattended-upgrades,用户可以在此文件中指定自动更新的规则,例如允许更新的软件源、是否自动移除未使用的依赖包等。

自定义更新频率:通过编辑 /etc/apt/apt.conf.d/20auto-upgrades 文件,可以设置更新检查和安装的频率。

shell 复制代码
bot@u22:/etc/apt/apt.conf.d$ ls
00aptitude        15update-stamp       20packagekit           60icons
00trustcdrom      20apt-esm-hook.conf  20snapd.conf           60icons-hidpi
01autoremove      20archive            50appstream            70debconf
01-vendor-ubuntu  20auto-upgrades      50command-not-found    99update-notifier
10periodic        20dbus               50unattended-upgrades
bot@u22:/etc/apt/apt.conf.d$ cat 20auto-upgrades 
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

4 disable Auto update

Ubuntu uses the unattended-upgrades package to handle automatic updates. You can disable this service to prevent automatic updates.

复制代码
# 显示状态
bot@u22:~/sen$ systemctl status unattended-upgrades
● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; >
     Active: active (running) since Wed 2025-04-06 06:25:39 CST; 12min ago
       Docs: man:unattended-upgrade(8)
   Main PID: 1003 (unattended-upgr)
      Tasks: 2 (limit: 4551)
     Memory: 11.7M
        CPU: 264ms
     CGroup: /system.slice/unattended-upgrades.service
             └─1003 /usr/bin/python3 /usr/share/unattended-upgrades/unattended->

4月 06 06:25:39 u22 systemd[1]: Started Unattended Upgrades Shutdown.
# 停止服务
bot@u22:~/sen$ sudo systemctl stop unattended-upgrades
[sudo] password for bot: 
# 取消服务的开机启动
bot@u22:~/sen$ sudo systemctl disable unattended-upgrades
Synchronizing state of unattended-upgrades.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable unattended-upgrades
Removed /etc/systemd/system/multi-user.target.wants/unattended-upgrades.service.
bot@u22:~/sen$ systemctl status unattended-upgrades
○ unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; disabled;>
     Active: inactive (dead)
       Docs: man:unattended-upgrade(8)

4月 06 06:25:39 u22 systemd[1]: Started Unattended Upgrades Shutdown.
4月 06 06:52:48 u22 systemd[1]: Stopping Unattended Upgrades Shutdown...
4月 06 06:52:48 u22 systemd[1]: unattended-upgrades.service: Deactivated succes>
4月 06 06:52:48 u22 systemd[1]: Stopped Unattended Upgrades Shutdown.
bot@u22:~/sen$

服务命令

shell 复制代码
systemctl enable:除了激活服务以外,也可以置服务为开机启动
systemctl disable:取消服务的开机启动

systemctl start:依次启动定义在 Unit 文件中的 ExecStartPre、ExecStart 和 ExecStartPost 命令
systemctl stop:依次停止定义在 Unit 文件中的 ExecStopPre、ExecStop 和 ExecStopPost 命令
systemctl restart:重启服务
systemctl kill:立即杀死服务

service service_name status:查看服务状态

参考

1、How to disable Auto update for my instance

2、Linux 服务管理 service systemd systemctl

相关推荐
宇宙浪子5 小时前
在 UOS(统信操作系统,基于 Debian/Ubuntu 体系)上编译 OpenCV 4.10.0
opencv·ubuntu·debian
文火冰糖的硅基工坊6 小时前
[嵌入式系统-150]:智能机器人(具身智能)内部的嵌入式系统以及各自的功能、硬件架构、操作系统、软件架构
android·linux·算法·ubuntu·机器人·硬件架构
yuer55316 小时前
ubuntu22+postgresql18启动报错
ubuntu·postgresql·en_us.utf-8
susu10830189116 小时前
ubuntu 查看文件夹占了多大
linux·运维·ubuntu
yiyeyeshenlan8 小时前
WSL2调用摄像头并使用OpenCV
深度学习·ubuntu
序属秋秋秋8 小时前
《Linux系统编程之入门基础》【权限管理】
linux·运维·服务器·笔记·学习·ubuntu·xshell
前端初见1 天前
快速上手TypeScript,TS速通
javascript·ubuntu·typescript
HIT_Weston1 天前
14、【Ubuntu】【VSCode】VSCode 断联问题分析:hostname(二)
linux·vscode·ubuntu
冲上云霄的Jayden1 天前
bash执行脚本 CondaError: Run ‘conda init‘ before ‘conda activate‘
linux·ubuntu·conda·bash·init·activate
qiuiuiu4131 天前
正点原子RK3568学习日志19- Linux错误处理 字符驱动框架完全体
linux·服务器·学习·ubuntu