问题描述
我正在使用结构进行一些系统管理自动化,我希望能够监控在给定机器上需要升级的软件包数量。这与我第一次登录计算机时可以看到的信息相同,即此部分:
35 packages can be updated.
22 updates are security updates.
是否有可以运行的命令(最好没有sudo
)可以提供这些信息?
我看过apt-python绑定,但它们似乎有很高的学习曲线,它们似乎也有很多改变 – 我想要的东西至少可以在清醒时使用而不需要做不同的事情不同的Ubuntu版本上的东西。
最佳解决方案
要获得该输出,可以使用该命令
sudo /usr/lib/update-notifier/update-motd-updates-available
或者,如果您不想使用sudo
,
cat /var/lib/update-notifier/updates-available
Explanation
login
应用程序显示文件/etc/motd
中的输出,该文件是/var/run/motd
的符号链接。
最后一个文件由mounted-varrun
服务(请参阅/etc/init/mounted-varrun.conf
)更新,调用/etc/update-motd.d/
中的所有脚本,特别是
/etc/update-motd.d/90-updates-available
然后调用脚本
/usr/lib/update-notifier/update-motd-updates-available
此脚本执行各种操作,最后将输出写入文本文件
/var/lib/update-notifier/updates-available
编辑
关于问题的重启部分,请运行此命令
/usr/lib/update-notifier/update-motd-reboot-required
如果不需要重启,它将不会输出。
次佳解决方案
为什么你不能跑这个?
/usr/lib/update-notifier/apt-check --human-readable
这就是/usr /lib /update-notifier /update-motd-updates可用于收集信息,至少在我正在使用的Ubuntu版本中(12.10)。
第三种解决方案
当我在/usr/lib/update-notifier/apt-check
中找到注释时,我还搜索了一个用于在最小的docker容器内进行更新检查的脚本方法:
apt-get -s -o Debug::NoLocking=true upgrade | grep ^Inst
这允许进行脚本式更新检查,而无需安装update-notifier-common
软件包