Debian:如何检查软件包升级/更新的最后一次运行时间?


Answers:


11

该文件/var/log/apt/history.log为您提供有关何时运行APT以及完成操作的信息。

tail -3 /var/log/apt/history.log

将为您提供有关APT的上一次运行的信息(不过不一定是最后一次的upgrage)。

要确定上次运行升级的时间是什么,您想要查找以开头的行Upgrade:,然后在文件的下一行(以开头End-Date:)中查找时间戳。上次此类匹配是您最后一次运行升级。


1
好吧,实际上,它确实显示了已运行的命令,包括升级。但是,如果事件有一段时间了,您可能必须查看压缩的日志文件,在这种情况下,tail无效。您必须先解压缩文件。
wolfgangsz

@wolfgangsz你是对的。据我所见,这些文件每月轮换一次。因此,如果您的上一次升级是一个多月前(或者如果您正处于一个月初),则可能必须查看以前的文件。
Goedson 2011年

紧随其后的行并不总是End-Date:-有时是Remove:。因此编写脚本要稍微复杂一些。
Hamish Downer 2012年

我已经基于这个想法编写了nagios插件-github.com/aptivate/check_apt_last_update
Hamish Downer

4

除了排除位于以下位置的日志文件外,/var/log/apt例如:/var/log/apt/var/log/history.log/var/log/term.log

我能想到的最接近的方法是检查dpkg:

ls -alt /var/lib/dpkg/info | head -n 10

顶部的日期应近似为上次处理这些软件包的时间。


我应该查看哪些日志文件(如果有)?
Rudolf Olah

如果您有大量压缩过的history.x.gz日志,则可以使用以下方式遍历它们(我不建议zcat'ting收集大量活动日志,但这对这些日志来说应该没问题) zcat history.log.* |head -n 10
Thinice 2011年

2

还有其他一些不错的评论,但是您真正想要的是/var/log/dpkg.log

dpkg是用于处理软件包的低级工具,因此每次软件包修改都会记录在此处。


2
而且,作为低级别,你可以不知道,如果行动记录都被它的结果apt-get install xxx或者apt-get upgrade甚至是dpkg -i xxx.deb。为了找出运行软件包升级的时间,最好查看APT的日志。
goedson 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.