All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bhaskar Chowdhury <unixbhaskar@gmail.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: yamada.masahiro@socionext.com, michal.lkml@markovi.net,
	rdunlap@infradead.org, linux-kbuild@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] scripts: prune-kernel : prune kernels generalized way
Date: Sun, 20 Oct 2019 03:46:35 +0530	[thread overview]
Message-ID: <20191019221632.GA17010@Gentoo> (raw)
In-Reply-To: <20191019160142.GA31839@fieldses.org>

[-- Attachment #1: Type: text/plain, Size: 5816 bytes --]

On 12:01 Sat 19 Oct 2019, J. Bruce Fields wrote:
>On Sat, Oct 19, 2019 at 06:37:22PM +0530, Bhaskar Chowdhury wrote:
>> This patch will remove old kernel from the system in a selective way.
>
>Please don't comment out code, just delete it, git's there to keep the
>old code.
>
I thought it would be more appropriate to know user why it's written in
first place.So ,deleting is not a good idea!

>There's some redundant code that should be inside a loop.
I don't want to make thing unnecessary complicated. Two more line
,scripts like this, doesn't harm at all. Easy for readability.
>
>A little more detail in the changelog might be useful to those of us who
>are lazy about reading bash script....
>
More "unnecessary" words doesn't make the actual purpose of the scripts
more helpful. I believe the single line I put is good enough for the
people to capture the essence.
>Looks like this just prompts for each individual delete?  Actually it
>looks like it requires the user to enter the module path and kernel
>version for each one which makes it not much more convenient use than a
>bare "ls" and "rm".
>
No , it is not. You missed out the point. The user should be reminded
what they are upto and precisely what is needed. I don't care who the
user are. This is operation just can not be done airy-fairy way.
>I personally use this in unattended scripts.  I mean, I don't really
>care what we do with this, as I use my own copy of the script, so
>whatever's useful to more people is fine.
>
Yes, you wrote it for your convenience, and that's great. I am thinking
of putting broader user base, so the verbosity and explicitness.
>But if somebody does actually use it as-is, it'd be nicer to keep the
>current behavior and add an option ("-i" or something) for the
>interactive behavior.
Subtle thing is not my cup of tea, honestly lack of bent of mind always
prevent me to doing that kind of thing.What you mention a flag would be
great and pretty trivial . But the whole point of having this script to
be "usable" lies somewhere else.
>
>--b.
>
Bruce, I am no way trying to demean or over riding your thought and
work. Just trying to make things work for everyone else. I just took it
your good work to extend it , certainly others could have done much
better if they stab on it,including you. No, doubt about it.

Thanks,
Bhaskar
>> 
>> Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
>> ---
>>  scripts/prune-kernel | 86 ++++++++++++++++++++++++++++++++++++--------
>>  1 file changed, 72 insertions(+), 14 deletions(-)
>> 
>> diff --git a/scripts/prune-kernel b/scripts/prune-kernel
>> index e8aa940bc0a9..9d839a4e4539 100755
>> --- a/scripts/prune-kernel
>> +++ b/scripts/prune-kernel
>> @@ -5,17 +5,75 @@
>>  # 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
>> +#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-$kernel_version System.map-$kernel_version config-$kernel_version
>> +}
>> +
>> +function remove_old_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 [[ $kernel_version == "" ]];then
>> +	exit 1
>> +else
>> +	remove_old_kernel
>> +fi
>> +
>> +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 [[ $modules_version == "" ]];then
>> +	printf "You have forgotten to give the modules dir to remove"
>> +else
>> +	remove_old_modules_dir
>> +fi
>> +
>> +printf "\n\n\n Removed kernel version:$kernel_version and associated 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 "Please give the full modules directory name to remove: %s"
>> +	 read modules_version
>> +	 remove_old_modules_dir
>> +	 printf "\n\n\n Removed kernel version:$kernel_version and associated modules:$modules_version ..Done \n\n"
>> +      elif [[ $response == "N" ]];then
>> +	 exit 1
>> +    fi
>> + done
>> --
>> 2.21.0

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2019-10-19 22:16 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-19 13:07 [PATCH] scripts: prune-kernel : prune kernels generalized way Bhaskar Chowdhury
2019-10-19 16:01 ` J. Bruce Fields
2019-10-19 22:16   ` Bhaskar Chowdhury [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-10-17  6:31 [PATCH] scripts : " Bhaskar Chowdhury
2019-10-17 20:16 ` Randy Dunlap
2019-10-17 23:00   ` Bhaskar Chowdhury
2019-10-16  6:13 Bhaskar Chowdhury
2019-10-16 16:08 ` Randy Dunlap
2019-10-17  6:19   ` Bhaskar Chowdhury

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191019221632.GA17010@Gentoo \
    --to=unixbhaskar@gmail.com \
    --cc=bfields@fieldses.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=michal.lkml@markovi.net \
    --cc=rdunlap@infradead.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.