仅当软件包早于

仅当软件包早于

我们在 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

相关内容