Как удалить все старые ядра, кроме текущего работающего ядра для системы Ubuntu/Debian

export KEEP_KERNEL=2; dpkg -l 'linux-image*' | awk '/^ii/ { print $2 }' | grep "[0-9]" | awk 'BEGIN{i=1}{print i++, $0}' | grep `uname -r` -B99 | sort -r | tail -n+$(($KEEP_KERNEL+2)) | awk '{print $2}'| xargs apt-get -y purge


Команда export keep_kernel=2 используется для экспорта переменной keep_kernel, которая устанавливает количество старых ядер, которые нужно сохранить.

Команда dpkg -l 'linux-image*' выводит список пакетов Linux-ядер, начинающихся с «linux-image».

Команда awk '/^ii/ { print $2 }' фильтрует результат предыдущей команды и выводит только имена пакетов (вторую колонку) строк, начинающихся с «ii».

Команда grep "[0-9]" фильтрует вывод предыдущей команды и выводит только пакеты, содержащие цифры.

Команда awk 'begin{i=1}{print i++, $0}' нумерует строки вывода предыдущей команды.

Команда grep uname -r -b99 фильтрует вывод предыдущей команды и выводит строки, содержащие текущий работающий ядро со смещением 99 символов.

Команда sort -r сортирует вывод предыдущей команды в обратном порядке.

Команда tail -n+$(($keep_kernel+2)) выводит все строки начиная с 2 + значений переменной keep_kernel.

Команда awk '{print $2}' выводит только вторую колонку строки.

Команда xargs apt-get -y purge передает список пакетов в apt-get для удаления ядер без необходимости подтверждения.

Альтернативой этой команде может быть использование утилиты purge-old-kernels, которая автоматически удаляет старые ядра из системы.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *