Kay*_*Ess 34 command-line apt automation
我正在使用结构进行一些系统管理自动化,我希望能够监控需要在给定机器上升级的软件包的数量。这和我第一次登录机器时看到的信息是一样的,即这部分:
35 packages can be updated.
22 updates are security updates.
Run Code Online (Sandbox Code Playgroud)
是否有一个我可以运行(最好没有sudo)的命令来提供该信息?
我看过 apt-python 绑定,但它们似乎具有很高的学习曲线,而且它们似乎也发生了很多变化——我想要一些至少可以追溯到 lucid 而不需要的东西在不同的 Ubuntu 版本上做不同的事情。
enz*_*tib 33
要获得该输出,您可以使用命令
sudo /usr/lib/update-notifier/update-motd-updates-available
Run Code Online (Sandbox Code Playgroud)
或者,如果您不想使用sudo,
cat /var/lib/update-notifier/updates-available
Run Code Online (Sandbox Code Playgroud)
该login应用程序显示在文件中找到的输出/etc/motd,即指向/var/run/motd.
最后一个文件由调用 中的所有脚本的mounted-varrun服务(请参阅/etc/init/mounted-varrun.conf)更新/etc/update-motd.d/,特别是
/etc/update-motd.d/90-updates-available
Run Code Online (Sandbox Code Playgroud)
反过来调用脚本
/usr/lib/update-notifier/update-motd-updates-available
Run Code Online (Sandbox Code Playgroud)
此脚本执行各种操作,最后将输出写入文本文件
/var/lib/update-notifier/updates-available
Run Code Online (Sandbox Code Playgroud)
编辑
关于问题的重启部分,运行这个命令
/usr/lib/update-notifier/update-motd-reboot-required
Run Code Online (Sandbox Code Playgroud)
如果不需要重启,它不会给出任何输出。
小智 21
为什么你不能运行这个?
/usr/lib/update-notifier/apt-check --human-readable
Run Code Online (Sandbox Code Playgroud)
这就是 /usr/lib/update-notifier/update-motd-updates-available 收集信息的作用,至少在我使用的 Ubuntu 版本(12.10)中是这样。