如何检查什么时候yum更新是上次运行的

有没有一个规范的方法来找出最后一次在系统上运行yum update

我们的设置是,我们有运行自动更新的服务器,并提供他们不会倒戈,我们将手动更新我们的生产服务器约一个月(禁止关键更新)。 (我说手动,理想情况下,我想手动触发所有的更新,但这是另一个问题)。

但是,你忙,任务滑等。所以我想build立一个纳吉奥斯检查,如果我们已经离开太久,将开始打扰我们。

searchnetworking并没有让我走得很远。 在系统周围,我迄今为止发现的最好的东西就是这样的:

 grep Updated /var/log/yum.log | tail -1 | cut -d' ' -f 1-2 

这给了我像Mar 12 ,然后我可以转换成date。 date是今年还是去年会有一些小小的复杂情况,我也需要检查/var/log/yum.log.1 ,以便在logrotate之后立即检查。 但是这只是脚本细节。

这当然可以通过更新到单个软件包而不是通用更新来“欺骗”。

那么有没有一个更经典的方式来看看什么时候yum update运行?

编辑:我现在写了一个Nagios NRPE插件,使用我在问题中提出的想法。 你可以从https://github.com/aptivate/check_yum_last_update抓取它

yum历史logging选项允许用户查看过去事务中发生了什么。 为了使它更简单,你可以从yum历史 grep 更新

 # yum history Loaded plugins: fastestmirror, refresh-packagekit ID | Login user | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 41 | root <root> | 2012-04-27 20:17 | Install | 19 40 | root <root> | 2011-11-20 10:09 | Install | 10 39 | root <root> | 2011-11-20 08:14 | Install | 1 E< 38 | root <root> | 2011-11-19 15:46 | Update | 1 

我认为唯一可以确定的方法就是运行psacct

这将允许您运行lastcomm yum 。 如果你parsing这个,你会知道谁跑了,什么时候跑。

我猜你正在将一组“Dev”服务器指向Dev yum repo?

你可以在cron / puppet / chef脚本中进行自动升级,一旦成功就写入文件。 (比如/etc/yum_last

然后,您可以在开发服务器上的cron / other中定期使用yum check-update来查看是否有更新可用。 如果此命令说>可用更新次数> 0,则将当前date与上次进行自动升级时创build的文件的时间戳进行比较。

如果这个date差异增长了几天,你可以有Nagios警报。

如果纸浆适合您的需求,您也可以看看纸浆 。