Message ID | 20191016061312.10626-1-unixbhaskar@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | scripts : prune-kernel : prune kernels generalized way | expand |
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 <unixbhaskar@gmail.com> > --- > 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. 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. > +} > +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. > +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. > + > +remove_old_kernel_modules_dir > + > +printf "\n\n Removed kernel version: $kernel_version and associcated modules: $modules_version ...Done \n" typo: associated > +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. > -- > 2.21.0
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 <unixbhaskar@gmail.com> >> --- >> 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
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 +} +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 + +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 + +remove_old_kernel_modules_dir + +printf "\n\n Removed kernel version: $kernel_version and associcated modules: $modules_version ...Done \n" +while : do +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" + exit 1 +fi done -- 2.21.0
This patch will remove old kernel from the system in a selective way. Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com> --- Thanks, a bunch to Randy for the hand holding . :) scripts/prune-kernel | 71 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 12 deletions(-)