无人值守升级状态?

b_l*_*shi 36 unattended-upgrades

有谁知道是否可以确定无人值守升级的状态?是否可以找出正在安装的软件包或我们在此过程中的位置?

我很欣赏无人值守升级的好处,但是当您的系统已经关闭了几个月,并且您想要安装应用程序或者当它们在没有太多资源的机器上消耗 CPU 资源时,它们可能真的很烦人开始。

我不只是想终止无人值守的升级。我知道该怎么做。我要他们跑。我只想知道我如何才能找出实际发生的事情以及他们处于哪个阶段。

use*_*733 44

在 16.04 和更新的系统上,无人值守升级每天随机运行。

如何判断无人值守升级将在今天运行

随机时间由 cron 作业(/etc/cron.daily/apt.compat)设置,您可以通过询问 systemd 来读取今天的随机时间:

$ systemctl list-timers apt-daily.timer
NEXT                         LEFT     LAST                         PASSED      UNIT            ACTIVATES
Tue 2017-07-11 01:53:29 CDT  13h left Mon 2017-07-10 11:22:40 CDT  1h 9min ago apt-daily.timer apt-daily.service
Run Code Online (Sandbox Code Playgroud)

在本例中,您可以看到 uu 在 1 小时 9 分钟前运行。

如何判断无人值守升级是否仍在运行

一种简单的方法是检查各种 apt 组件的时间戳文件:

$ ls -l /var/lib/apt/periodic/
total 0
-rw-r--r-- 1 root root 0 Jul 10 11:24 unattended-upgrades-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:23 update-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 update-success-stamp
-rw-r--r-- 1 root root 0 Jul 10 11:24 upgrade-stamp
Run Code Online (Sandbox Code Playgroud)

你可以在这里看到 uu 只是另一个 apt 组件。无论 apt 是如何启动的,apt 都会将时间戳放在这里。

将数据放在一起,可以看到计时器在 11:22 开始 apt (uu)。它运行了在 11:23 完成的更新,然后在 11:24 完成了升级。最后,您可以看到 apt 认为升级成功(没有错误或其他失败)。

显然,如果您看到最近的计时器没有相应的完成时间戳,那么您可能需要检查psapt 是否仍在运行。

如何判断 apt 现在正在运行哪个步骤

一种简单的方法是检查 uu 日志文件。

$ less /var/log/unattended-upgrades/unattended-upgrades.log
2017-07-10 11:23:00,348 INFO Initial blacklisted packages: 
2017-07-10 11:23:00,349 INFO Initial whitelisted packages: 
2017-07-10 11:23:00,349 INFO Starting unattended upgrades script
2017-07-10 11:23:00,349 INFO Allowed origins are: ['o=Ubuntu,a=zesty-security', 'o=Ubuntu,a=zesty-updates']
2017-07-10 11:23:10,485 INFO Packages that will be upgraded: apport apport-gtk libpoppler-glib8 libpoppler-qt5-1 libpoppler64 poppler-utils python3-apport python3-problem-report
2017-07-10 11:23:10,485 INFO Writing dpkg log to '/var/log/unattended-upgrades/unattended-upgrades-dpkg.log'
2017-07-10 11:24:20,419 INFO All upgrades installed
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到正常的日常流程,包括“已开始”和“已完成”行,以及即将升级的软件包列表。

如果尚未记录软件包列表,则可以安全地中断 apt。记录软件包列表后,请勿中断 apt。

由于您有一个资源受限的环境,请注意 apt 可以通过多种方式进行配置,以使用不同的运行时间、良好的级别、带宽限制和许多其他有用的设置来可靠且不引人注目地工作。

  • 如果它还没有完成,这个命令就好像你在终端中运行一样。`tail -f /var/log/unattended-upgrades/unattended-upgrades-dpkg.log` (15认同)

小智 8

我用它来获取待升级的总数

apt list --upgradeable | wc -l 
Run Code Online (Sandbox Code Playgroud)

  • 请注意,“apt”还会生成一行“Listing... Done”,该行将被计数(至少 2.3.9 版本是这样)。 (2认同)