Intereting Posts
Различия между реестром Windows и подходом UNIX / Linux Загрузка crontab из файла при запуске Загрузка без пароля TPM Копирование / зеркальное отображение трафика на WAN-интерфейсы без поддержки «iptables tee» Сетевой ввод-вывод и дисковый ввод-вывод без установки каких-либо или использования сторонних библиотек Изменение направления появления нового клиента в Awesome Window Manager zsh: использовать setopt AUTO_MENU условно, в зависимости от $ PWD Поддерживать путь в устанавливаемом UnixAPI Как `найти` все файлы и папки с правами доступа 0 **? Как связать интерпретатор Python с ключом? В чем разница между optirun и primusrun (шмель) Как использовать команду find для перечисления общедоступных записываемых файлов в каталог, не переходя в какие-либо подкаталоги? удаление всех вкладок в sqlplus Обход флэш-памяти NAND и сводка виртуальной памяти Возможность легко переключаться между каталогами в разных областях

как захватить последнюю версию ядра из grub.conf

Как я могу захватить последнюю версию ядра из grub.conf (в случае default = 0)?

Например, последнее ядро ​​из файла: 2.6.18-409.el5

  # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/rootvg/slash # initrd /initrd-version.img #boot=/dev/cciss/c0d0 default=0 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz #hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-409.el5) root (hd0,0) kernel /vmlinuz-2.6.18-409.el5 ro root=/dev/rootvg/slash initrd /initrd-2.6.18-409.el5.img по  # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/rootvg/slash # initrd /initrd-version.img #boot=/dev/cciss/c0d0 default=0 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz #hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-409.el5) root (hd0,0) kernel /vmlinuz-2.6.18-409.el5 ro root=/dev/rootvg/slash initrd /initrd-2.6.18-409.el5.img -  # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/rootvg/slash # initrd /initrd-version.img #boot=/dev/cciss/c0d0 default=0 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz #hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-409.el5) root (hd0,0) kernel /vmlinuz-2.6.18-409.el5 ro root=/dev/rootvg/slash initrd /initrd-2.6.18-409.el5.img 

Я попробовал это:

  grep kernel /etc/grub.conf | grep -v "#" |sed s'/-/ /' | head -1 | awk '{print $3}' 2.6.18-409.el5 

но я считаю, что этот подход не является надежным и не обрабатывает некоторые случаи.

Пожалуйста, сообщите, какой правильный подход получить последнее ядро ​​только от `grub.conf“.

Этот подход специфичен для версии grub, обратите внимание, что для grub 2+ kernel было заменено linux , поэтому этот подход учитывает это

 awk '/\/vmlinuz{kernel[$2]} END{ asorti(kernel); latest=kernel[length(kernel)]; print "Latest kernel : ",gensub(/\/vmlinuz-([[:digit:].-]*[[:digit:]]).*$/,"\\1","1",latest)} ' /boot/grub/grub.cfg 

Образец вывода

 Latest kernel : 3.13.0-86 

Примечание. Требуется [gnu-awk]