mirror of
				https://github.com/tteck/Proxmox.git
				synced 2025-10-31 02:49:19 +00:00 
			
		
		
		
	Create kernelclean.sh
This commit is contained in:
		
							parent
							
								
									6cbf5555d2
								
							
						
					
					
						commit
						4793b2e238
					
				
							
								
								
									
										86
									
								
								misc/kernelclean.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										86
									
								
								misc/kernelclean.sh
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,86 @@ | |||||||
|  | #!/bin/bash | ||||||
|  | YW=`echo "\033[33m"` | ||||||
|  | BL=`echo "\033[36m"` | ||||||
|  | RD=`echo "\033[01;31m"` | ||||||
|  | CM='\xE2\x9C\x94\033' | ||||||
|  | GN=`echo "\033[1;92m"` | ||||||
|  | CL=`echo "\033[m"` | ||||||
|  | # Current kernel | ||||||
|  | current_kernel=$(uname -r) | ||||||
|  | function check_root { | ||||||
|  |         if [[ $EUID -ne 0 ]]; then | ||||||
|  |                 printf "[!] Error: this script must be ran as the root user.\n"  | ||||||
|  |                 exit 1 | ||||||
|  |         fi | ||||||
|  | } | ||||||
|  | clear | ||||||
|  | function header_info { | ||||||
|  | echo -e "${RD} | ||||||
|  |   _  __                    _    _____ _                   | ||||||
|  |  | |/ /                   | |  / ____| |                  | ||||||
|  |  |   / ___ _ __ _ __   ___| | | |    | | ___  __ _ _ __   | ||||||
|  |  |  < / _ \  __|  _ \ / _ \ | | |    | |/ _ \/ _  |  _ \  | ||||||
|  |  |   \  __/ |  | | | |  __/ | | |____| |  __/ (_| | | | | | ||||||
|  |  |_|\_\___|_|  |_| |_|\___|_|  \_____|_|\___|\__,_|_| |_| | ||||||
|  | 
 | ||||||
|  | ${CL}" | ||||||
|  | } | ||||||
|  | function kernel_info { | ||||||
|  |         latest_kernel=$(dpkg --list| grep 'pve-kernel-.*-pve' | awk '{print $2}' | tac | head -n 1) | ||||||
|  |         printf "OS: $(cat /etc/os-release | grep "PRETTY_NAME" | sed 's/PRETTY_NAME=//g' | sed 's/["]//g' | awk '{print $0}')\n" | ||||||
|  |         printf "Current Kernel: pve-kernel-$current_kernel\n" | ||||||
|  |         if [[ "$current_kernel" == *"pve"* ]]; then | ||||||
|  |                 if [[ "$latest_kernel" != *"$current_kernel"* ]]; then | ||||||
|  |                         printf "Latest Kernel: $latest_kernel\n" | ||||||
|  |                 fi | ||||||
|  |         else | ||||||
|  |                 printf "___________________________________________\n\n" | ||||||
|  |                 printf "[!] Warning, you're not running a PVE Kernel\n" | ||||||
|  |                         exit 1 | ||||||
|  |         fi | ||||||
|  | } | ||||||
|  | function kernel_clean { | ||||||
|  |         kernels=$(dpkg --list| grep 'pve-kernel-.*-pve' | awk '{print $2}' | sort -V) | ||||||
|  |         kernels_to_remove="" | ||||||
|  |         for kernel in $kernels | ||||||
|  |         do | ||||||
|  |                 if [ "$(echo $kernel | grep $current_kernel)" ]; then | ||||||
|  |                         break | ||||||
|  |                 else | ||||||
|  |                         printf "\"$kernel\" has been added to the Kernel remove list\n" | ||||||
|  |                         kernels_to_remove+=" $kernel" | ||||||
|  |                 fi | ||||||
|  |         done | ||||||
|  |         printf "Kernel Search Complete!\n" | ||||||
|  |         if [[ "$kernels_to_remove" != *"pve"* ]]; then | ||||||
|  |                 printf "It appears there are no old Kernels on your system \n" | ||||||
|  |         else | ||||||
|  |                         read -p "[!] Would you like to remove the $(echo $kernels_to_remove | awk '{print NF}') selected Kernels listed above? [y/N]: " -n 1 -r | ||||||
|  |                         printf "\n" | ||||||
|  |         fi | ||||||
|  |                 if [[ $REPLY =~ ^[Yy]$ ]]; then | ||||||
|  |                         printf "Removing $(echo $kernels_to_remove | awk '{print NF}') old Kernels..." | ||||||
|  |                         /usr/bin/apt purge -y $kernels_to_remove > /dev/null 2>&1 | ||||||
|  |                         printf "Finished!\n" | ||||||
|  |                         printf "Updating GRUB..." | ||||||
|  |                         /usr/sbin/update-grub > /dev/null 2>&1 | ||||||
|  |                         printf "Finished!\n" | ||||||
|  |                 else | ||||||
|  |                         printf "\nExiting...\n" | ||||||
|  |                 fi | ||||||
|  | } | ||||||
|  | function main { | ||||||
|  |         check_root | ||||||
|  |         header_info | ||||||
|  |         kernel_info | ||||||
|  | } | ||||||
|  | while true; do | ||||||
|  |         case "$1" in | ||||||
|  |                 * ) | ||||||
|  |                         main | ||||||
|  |                         kernel_clean | ||||||
|  |                         exit 1 | ||||||
|  |                 ;; | ||||||
|  |     esac | ||||||
|  |     shift | ||||||
|  | done | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user