Você pode determinar com segurança a versão mais recente do kernel instalada por meio da seguinte consulta do rpm:
rpm -q kernel --queryformat '%{installtime} %{version}-%{release}.%{arch}\n' | sort -n -k1 | tail -1 | cut -d ' ' -f 2
Exemplo de saída no RHEL 7:
3.10.0-229.11.1.el7.x86_64
Agora, verifique se a saída de uname -r
corresponde:
3.10.0-229.1.2.el7.x86_64
Neste exemplo, ele não corresponde e uma reinicialização é necessária.
Você pode usar o teste para comparar as strings:
if [ "'rpm -q kernel --queryformat '%{installtime} %{version}-%{release}.%{arch}\n' | sort -n -k1 | tail -1 | cut -d ' ' -f 2'" = "'uname -r'" ]; then echo "latest kernel already booted."; else echo "new kernel. reboot required."; fi