AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1392023
Accepted
Sqerstet
Sqerstet
Asked: 2022-02-10 11:57:35 +0800 CST2022-02-10 11:57:35 +0800 CST 2022-02-10 11:57:35 +0800 CST

是什么让无人值守升级在笔记本电脑上可靠运行?

  • 772

我一直在以各种形式挣扎,年复一年。见这里和这里。要么我配置错误(不太可能),要么我以一种奇怪的方式使用我的电脑(我没有看到它)。

我的电脑是笔记本电脑:

  1. 以前,我在晚上关掉了它——结果它unattended-upgrade经常无法在需要的时候连接到互联网。结果:我的电脑连续几个月没有升级和不安全。
  2. 这些天我大部分时间都保持登录状态,但是晚上热点连接不可用。所以现在,unattended-upgrade运行了却发现没有更新,显然是因为apt update一直没能成功运行。结果:我的电脑连续几个月没有升级并且不安全。

如何确保systemd计时器apt update在运行之间不会间隔数周和数月?

的典型输出/var/log/unattended-upgrades/unattended-upgrades.log

2022-02-09 06:30:27,331 INFO Starting unattended upgrades script
2022-02-09 06:30:27,334 INFO Allowed origins are: o=Ubuntu,a=focal, o=Ubuntu,a=focal-security, o=UbuntuESMApps,a=focal-apps-security, o=UbuntuESM,a=focal-infra-security, o=UbuntuESM,a=focal-security
2022-02-09 06:30:27,335 INFO Initial blacklist: 
2022-02-09 06:30:27,336 INFO Initial whitelist (not strict): 
2022-02-09 06:30:40,279 INFO No packages found that can be upgraded unattended and no pending auto-removals

sudo systemctl status apt-daily:

* apt-daily.service - Daily apt download activities
     Loaded: loaded (/lib/systemd/system/apt-daily.service; static; vendor preset: enabled)
     Active: inactive (dead)
TriggeredBy: * apt-daily.timer
  Condition: start condition failed at Wed 2022-02-09 20:42:17 EET; 4h 17min ago
             └─ ConditionACPower=true was not met
       Docs: man:apt(8)

Feb 09 20:42:17 tbox systemd[1]: Condition check resulted in Daily apt download activities being skippe>
lines 1-9/9 (END)

sudo systemctl list-timers apt-daily:

NEXT                        LEFT     LAST                        PASSED       UNIT            ACTIVATES>
Thu 2022-02-10 16:15:14 EET 15h left Wed 2022-02-09 20:42:17 EET 4h 22min ago apt-daily.timer apt-daily>

1 timers listed.
Pass --all to see loaded but inactive timers, too.
lines 1-5/5 (END)

注意:几个小时前有重新启动。未插入但已连接到网络。

定论。使用下面接受的解决方案的版本,将其转移apt-daily.timer到互联网连接更有可能可用的时间。感谢那些帮助过的人。结束。

apt
  • 1 1 个回答
  • 449 Views

1 个回答

  • Voted
  1. Best Answer
    Andrew Lowther
    2022-02-10T15:20:56+08:002022-02-10T15:20:56+08:00

    检查股票 Ubuntu Server 20.04 安装,看起来unattended-upgrade运行是由apt-daily-upgrade.timer. 这会在每天早上 6 点触发,随机延迟最多一个小时。

    root@ubuntu:~# systemctl cat apt-daily-upgrade.timer
    # /lib/systemd/system/apt-daily-upgrade.timer
    [Unit]
    Description=Daily apt upgrade and clean activities
    After=apt-daily.timer
    
    [Timer]
    OnCalendar=*-*-* 6:00
    RandomizedDelaySec=60m
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    

    一个可能很简单的解决方案是覆盖OnCalendar设置,以便计时器在更有可能在线的时间触发。例如

    mkdir /etc/systemd/system/apt-daily-upgrade.timer.d
    cat <<EOF >/etc/systemd/system/apt-daily-upgrade.timer.d/override.conf
    [Timer]
    OnCalendar=
    OnCalendar=*-*-* 12:00
    EOF
    systemctl daemon-reload
    

    这将改为在中午触发计时器。 unattended-upgrade默认情况下每天只运行一次。那是因为APT::Periodic::Unattended-Upgrade. 樱桃从中挑选评论/usr/lib/apt/apt.systemd.daily

    #  APT::Periodic::Unattended-Upgrade "0";
    #  - Run the "unattended-upgrade" security upgrade script
    #    every n-days (0=disabled)
    

    库存配置值是1天。

    root@ubuntu:~# apt-config dump APT::Periodic::Unattended-Upgrade
    APT::Periodic::Unattended-Upgrade "1";
    

    您可以通过添加 apt 配置将计时器配置为每天一次以上。https://unix.stackexchange.com/a/541426/147262的评论链接有几个建议。这是添加apt配置的简单示例

    cat <<EOF > /etc/apt/apt.conf.d/90myuu
    > APT::Periodic::Unattended-Upgrade "always";
    > EOF
    

    如果您覆盖 ,apt-daily-upgrade.timer那么您可能希望对 . 进行相同的覆盖apt-daily.timer。这也有相应的 apt 配置值APT::Periodic::Update-Package-Lists。

    编辑我已将建议从每小时运行一次更改为每天运行一次,一次更有可能在线。我意识到每天运行一次的默认设置不受unattended-upgrade实际是否有任何要更新的包的影响。因此,unattended-upgrade仍然只能在不在线时继续运行。

    注释

    像这样超频每日计时器是否有任何潜在的缺点?

    默认情况下,升级会在一夜之间运行,以避免干扰用户活动。你将不再有那种便利。

    不满足条件ACPower=true。您可以更改该设置

    您应该使用覆盖文件更改此设置,而不是通过修改包安装的服务文件

    mkdir /etc/systemd/system/apt-daily-upgrade.service.d
    cat <<EOF > /etc/systemd/system/apt-daily-upgrade.service.d/override.conf
    [Unit]
    ConditionACPower=false
    EOF
    systemctl daemon-reload
    

    覆盖 apt-daily.timer 的原因或缺点是什么?

    apt-daily.timer触发 apt 命令以更新软件包信息并下载可用更新。如果这些命令在网络不可用时继续运行,则unattended-upgrade可能不会更新任何内容,因为它可能不知道更新可用。

    • 1

相关问题

  • 如何编写 shell 脚本来安装应用程序列表?

  • 如何查看存档中可用的软件包的所有版本?

  • 是否可以说出我安装的哪些软件包不在原版安装中?

  • 如何删除 PPA?

  • 使用 apt-get upgrade 时如何强制安装内核更新?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve