如何以普通用户的身份获取Ubuntu系统上可用更新的数量


8

我需要一个简单的监视脚本,但我不想以root身份运行...


1
总是有命令限制的nopasswd sudo
Michael Lowman

谢谢大家的回答。在尝试了一些建议并进一步研究之后,在我看来,需要最少依赖且最安全的解决方案只是解析/ etc / motd-但是对我来说,这似乎不是很优雅:)
乔·坎达巴

Answers:


10

可以使用以下方法找到待处理的安全更新的数量:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 1

使用以下方法可以找到未决的定期更新的数量:

/usr/lib/update-notifier/apt-check 2>&1 | cut -d ';' -f 2

/superuser/199869/check-number-of-pending-security-updates-in-ubuntu


比我的优雅得多:)
anthonysomerset 2011年

谢谢您的答复,但是正如jldugger所指出的,它是一台(无头)服务器,因此安装240个以上的软件包(包括很多gui东西)来获取apt更新的数量确实不是一个选择。
乔·坎达巴

它由update-notifier-common包提供。我认为它没有任何GUI依赖项。
sourcejedi 2013年

1

使用sudo是您的答案,您可能需要将要在其上运行脚本的用户添加到sudoers文件中,并可能使用nopasswd标志,以便在每次脚本运行时都不会提示您输入密码,有关sudo的更多信息,请尝试在这里看看:https : //help.ubuntu.com/community/Sudoers


我真的希望没有必要在根服务器上以root用户身份运行任何内容。
Joe Kandaba

它只能在足以运行命令的根目录下运行,并且可以将其限制为获取更新所需的特定命令,从而消除任何可能的安全威胁
anthonysomerset 2011年

1

Ubuntu有许多打包的nagios插件,包括方便的check_apt,一个自定义C程序。它的依赖项更小,它比update-notifier更好。如果您有兴趣监视服务器,则可能已经安装了它!输出看起来像这样(如果您不喜欢它,则将程序派生以打印所需的内容似乎很简单):

APT OK: 0 packages available for upgrade (0 critical updates).

如果您不喜欢使用nagios警报,则可以执行我的操作并安装apticron,它会向您发送有关系统上可用更新的电子邮件通知。


谢谢!Apticron并不是一种选择,因为我需要自己脚本的信息,因此电子邮件无法解决问题。出于相同的原因,我没有使用nagios,但是您的回答似乎暗示“ check_apt”可以独立使用?
乔·坎达巴

@Joe所有的nagios插件都可以独立运行-那是nagios所做的大部分工作:)
Michael Lowman

是的 这只是安装到/ usr / lib / nagios / check_apt的程序。可以像任何旧用户一样运行。
jldugger 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.