On Wed, 09 Mar 2022 16:27:22 -0500, faeychild <
[email protected]> wrote:
The more kernels laying around the longer it takes
There are several scripts floating around to remove old kernels. I use the following ...
$ cat /usr/local/sbin/oldkernelsrm
#!/bin/bash
# Set number of packages to keep. Must be 1 or greater
declare -i NumberOfVersionsToKeep=2
set -u
ListInstalledPackages() {
LatestPrefixStart="${LatestPrefix%%-*}"
if [ "virtualbox" == "${LatestPrefixStart}" ] ; then
PackagePrefix="virtualbox-kernel"
elif [ "vboxadditions" == "${LatestPrefixStart}" ] ; then
PackagePrefix="vboxadditions-kernel"
elif [ "xtables" == "${LatestPrefixStart}" ] ; then
PackagePrefix="xtables-addons-kernel"
else
PackagePrefix="$LatestPrefix"
fi
RpmOutputLines=($(rpm -qa $PackagePrefix-\[0-9\]*|sort -V))
PackageCount=${#RpmOutputLines[@]}
if (( $PackageCount > $NumberOfVersionsToKeep )) ; then
LinesKeep=$(( $PackageCount - $NumberOfVersionsToKeep ))
RemoveListNew=("$(printf "%s\n" "${RpmOutputLines[@]}"|head -n $LinesKeep)")
RemoveList=(${RemoveList[@]-} ${RemoveListNew[@]})
fi
}
ProcessLatest() {
x="${LatestPackage%-*}" # strip last hyphen and following (removes rpm Release)
x="${x%-*}" # strip last hyphen and following (removes rpm Version')
LatestPrefix="${x%-*}" # strip last hyphen and following (removes '-latest')
ListInstalledPackages
}
RemoveList=( )
LatestPackagesList=($(rpm -qa *latest |grep -v perl-latest|sort))
for LatestPackage in "${LatestPackagesList[@]}"; do
ProcessLatest
done
if (( ${#RemoveList[@]} > 0 )) ; then
urpme --wait-lock ${RemoveList[@]}
fi
exit
After saving the above in the text file, don't forget to mark it executable.
Regards, Dave Hodgins
--- MBSE BBS v1.0.8 (Linux-x86_64)
* Origin: A noiseless patient Spider (2:250/1@fidonet)