我们在 yum 更新后遇到了一些新软件包的问题(例如:最新的微代码https://access.redhat.com/errata/RHSA-2020:2432我们的一台生产服务器导致了内核恐慌并且无法启动)。
我想知道是否有一种方法可以只更新存储库中一段时间的包,比如说:1 个月。
这样,如果新包装中存在错误,我们的服务器就不会停机。
谢谢!
答案1
我遇到了另一个问题,我想让生产服务器晚于阶段和开发服务器更新软件包。
如果可能的话我会选择一个补丁管理工具,比如工头卡泰洛和多个本地 yum 存储库。
我的解决方案虽然不漂亮,但确实有效:
repoquery -a --pkgnarrow=updates --qf="%{name}-%{epoch}:%{version}-%{release}.%{arch} %{filetime}" |
awk -v daysago=$(date --date="7 days ago" +%s) '$NF < daysago' |
cut -f1 -d" " |
xargs yum update --assumeyes
解释:
repoquery
列出更新并在末尾添加文件时间信息,以空格分隔awk
过滤最后一部分超过 7 天的日期(根据您的需要进行更改)cut
按空格分割并删除最后一部分(实际上是空格和时间戳)xargs -r yum update
将列表插入yum update
命令中。您还可以选择在此处使用 过滤安全更新--security
。