相关疑难解决方法(0)

如何以编程方式确定安装的最高版本内核 RPM?

我想要编写的脚本是这样的:

if [ uname -r is not == highest version of kernel RPM installed ]
then
  echo "You need to reboot to use the latest kernel"
fi
Run Code Online (Sandbox Code Playgroud)

问题是,如果输出rpm -q kernel类似于:

kernel-2.6.32-358.10.2.el6.x86_64
kernel-2.6.32-358.6.1.el6.x86_64
Run Code Online (Sandbox Code Playgroud)

……我如何确定哪个更高?我知道一个简单的字符串排序是不可靠的(在这个例子中它会倒退)。rpm 是否有快捷方式,还是我必须解析所有内容并自己进行比较?

rpm version

9
推荐指数
1
解决办法
2万
查看次数

如果下一行与另一个模式不匹配,则删除与模式匹配的行

下面是我的检查脚本的提取输出,我只想打印主机名和错误。如果主机没有错误,也删除主机名条目。
我想使用的逻辑是删除现有行,如果下一行不匹配“NOT OK”
可以使用awksed...任何实用程序都适合模式匹配。

NSAS_HOST:d01-emsacssb01
NSAS_HOST:d01-emsacssb02
NSAS_HOST:emsacssbcon01
NOT OK main load processes
NOT OK 5.3% AXConfigurator
NOT OK eth0.orig is not UP, but ifcfg-eth0.orig sets ONBOOT=yes
NOT OK eth1.bak is not UP, but ifcfg-eth1.bak sets ONBOOT=yes
NOT OK eth1.orig is not UP, but ifcfg-eth1.orig sets ONBOOT=yes
NSAS_HOST:emsacssb03
NOT OK eth0.orig is not UP, but ifcfg-eth0.orig sets ONBOOT=yes
NOT OK eth1.orig is not UP, but ifcfg-eth1.orig sets ONBOOT=yes
NSAS_HOST:emsacsnb01
NSAS_HOST:emsacsnb02
NSAS_HOST:d02-emsacssb01
NSAS_HOST:d02-emsacssb02
NSAS_HOST:b2bcms01
NSAS_HOST:b2bcms02
NSAS_HOST:d02-b2bpgdb01
NOT OK …
Run Code Online (Sandbox Code Playgroud)

sed awk text-processing

5
推荐指数
1
解决办法
1974
查看次数

标签 统计

awk ×1

rpm ×1

sed ×1

text-processing ×1

version ×1