On 09:08 Wed 16 Oct 2019, Randy Dunlap wrote: >On 10/15/19 11:13 PM, Bhaskar Chowdhury wrote: >> This patch will remove old kernel from the system in a selective way. >> >> Signed-off-by: Bhaskar Chowdhury >> --- >> Thanks, a bunch to Randy for the hand holding . :) > >Hi Bhaskar, > >First problem is that patch complains: > >checking file scripts/prune-kernel >Using Plan A... >patch: **** malformed patch at line 87: 2.21.0 > >IOW, this patch does not apply cleanly. Whoops! Sending the patch with all the corrections. >More comments below. > > >> scripts/prune-kernel | 71 ++++++++++++++++++++++++++++++++++++-------- >> 1 file changed, 59 insertions(+), 12 deletions(-) >> >> diff --git a/scripts/prune-kernel b/scripts/prune-kernel >> index e8aa940bc0a9..78dd4c854b2b 100755 >> --- a/scripts/prune-kernel >> +++ b/scripts/prune-kernel >> @@ -5,17 +5,64 @@ >> # again, /boot and /lib/modules/ eventually fill up. >> # Dumb script to purge that stuff: >> >> +#for f in "$@" >> +#do >> +# if rpm -qf "/lib/modules/$f" >/dev/null; then >> +# echo "keeping $f (installed from rpm)" >> +# elif [ $(uname -r) = "$f" ]; then >> +# echo "keeping $f (running kernel) " >> +# else >> +# echo "removing $f" >> +# rm -f "/boot/initramfs-$f.img" "/boot/System.map-$f" >> +# rm -f "/boot/vmlinuz-$f" "/boot/config-$f" >> +# rm -rf "/lib/modules/$f" >> +# new-kernel-pkg --remove $f >> +# fi >> +#done >> +boot_dir=/boot >> +modules_dir=/lib/modules >> + >> +function remove_old_kernel(){ >> + cd $boot_dir >> + rm -If vmlinuz-$kenrel_version System.map-$kernel_version config-$kernel_verison > >Typos: > $kernel_version $kernel_version > >I.e., you can't have tested this. > Fixed. >> +} >> +function remove_old_kernel_modules_dir(){ >> + cd $modules_dir >> + rm -rf $modules_version >> +} >> +printf "\n\n Enlist the installed kernels \n\n" >> + >> +find $boot_dir -name "vmlinuz-*" -type f -exec ls -1 {} \; >> + >> +printf "\n\n\n Please give the kernel version to remove: %s" >> +read kernel_version >> + > >If I enter nothing here, no need to call remove_old_kernel. > Okay, terminate it there, because allowing defeat the purpose of the script. >> +remove_old_kernel >> + >> +printf "\n\n Enlist the installed modules directory \n\n" >> + >> +find $modules_dir -maxdepth 0 -type d -exec ls -1 {} \; >> + >> +printf "\n\n Please give the full modules directory name to remove: %s" >> +read modules_version > >If I enter nothing here, don't call remove_old_kernel_modules_dir. > It will not reach here, because we have terminated it above. >> + >> +remove_old_kernel_modules_dir >> + >> +printf "\n\n Removed kernel version: $kernel_version and associcated modules: $modules_version ...Done \n" > > typo: associated > Fixed. >> +while : >> do > >Why is the "do" line missing a '+'? The only do/done in the current script >are already listed above as being commented out. > >> +printf "\n\n Do you want to remove another?[YN] : %s" >> +read response >> + >> +if [[ $response == "Y" ]];then >> + printf "Please give another version to remove : %s" >> + read kernel_version >> + remove_old_kernel >> + printf "\n\n Please give the full modules directory name to remove: %s" >> + read modules_version >> + remove_old_kernel_modules_dir >> +elif [[ $response == "N" ]];then >> + printf "\n\n Alright,no more. \n\n" > >Just exit, no printf needed. > >> + exit 1 >> +fi >> done >Same comment for "done" as for "do" above. I must have done something wrong that is why...now fixed it. > >> -- >> 2.21.0 > > Thank you Randy, and extremely sorry to gobbles up your and everyones time...heck.. >-- >~Randy