我想知道最后一次安装安全补丁的日期。
我使用 Debian 7.0 服务器和 RedHat 7 服务器。
我在RedHat上尝试过:
rpm -qa --last
我获得了软件包名称和安装/更新日期,但我无法理解哪些是安全的,哪些不是。
答案1
在 RHEL 上,您可以使用以下命令列出所有已安装的安全更新yum
:
yum updateinfo list security installed
这按字母顺序列出了更新,因此要根据其咨询编号对它们进行排序,您可以使用:
yum updateinfo list security installed | sort
(看是否可以限制 yum 使其仅列出或安装安全更新?有关yum
安全插件的更多信息。)
然而,这并没有给你日期。如果您对 的输出感到满意rpm -qa --last
,您可以通过一些管道将两者关联起来:
grep "$(yum updateinfo list security installed | \
tail -n +3 | head -n -1 | awk '{ print $3 }')" <(rpm -qa --last)
yum
基本上,您正在从该命令的输出的上述输出中查找包名称rpm
。 (tail
和head
命令只是帮助您消除不需要的输出yum
。)
答案2
我还想在问题中添加我为 Debian 找到的解决方案(不会过滤安全性,但至少您可以获得最后更新日期):
is_debian=$(cat /proc/version | grep -i Debian | wc -l) && if [ "$is_debian" -eq 1 ]; then last_update=$([ -s /var/log/dpkg.log ] && tail -n 1 /var/log/dpkg.log || tail -n 1 /var/log/dpkg.log.1 | awk '{ print $1 }' ) && echo $last_update; fi ;