Update pvekclean.sh v2.0.2

This commit is contained in:
Jordan
2023-11-13 13:29:42 +01:00
committed by GitHub
parent 0a4fcb889d
commit e7853e3741
+29 -12
View File
@@ -116,6 +116,23 @@ if [ "$dry_run" == "true" ]; then
fi fi
} }
# Function to get drive status based on usage percentage
get_drive_status() {
local usage=$1
# Check if the input is a number
if ! [[ $usage =~ ^[0-9]+$ ]]; then
echo "${bold}N/A${reset}"
else
if (( usage <= 50 )); then
echo "${bold}${green}Healthy${reset}"
elif (( usage > 50 && usage <= 75 )); then
echo "${bold}${orange}Moderate Capacity${reset}"
else
echo "${bold}${red}Critically Full${reset}"
fi
fi
}
# Show current system information # Show current system information
kernel_info() { kernel_info() {
# Lastest kernel installed # Lastest kernel installed
@@ -319,17 +336,10 @@ pve_kernel_clean() {
kernels=$(dpkg --list | grep -E "(pve-kernel|proxmox-kernel)-[0-9].*" | grep -E "Kernel Image" | grep -vE "${latest_kernel%-pve}|series|transitional" | awk '{print $2}' | sed -n 's/\(pve\|proxmox\)-kernel-\(.*\)/\2/p' | sort -V) kernels=$(dpkg --list | grep -E "(pve-kernel|proxmox-kernel)-[0-9].*" | grep -E "Kernel Image" | grep -vE "${latest_kernel%-pve}|series|transitional" | awk '{print $2}' | sed -n 's/\(pve\|proxmox\)-kernel-\(.*\)/\2/p' | sort -V)
# List of kernels that will be removed (adds them as the script goes on) # List of kernels that will be removed (adds them as the script goes on)
kernels_to_remove=() kernels_to_remove=()
# Check the /boot used # Boot drive status
printf "${bold}[*]${reset} Boot disk space used is " boot_drive_status=$(get_drive_status ${boot_info[4]})
# Warn user when the /boot is critically full # Show space used, status and free space available
if [[ "${boot_info[4]}" -ge "$boot_critical_percent" ]]; then printf "${bold}[*]${reset} Boot disk space used is ${bold}${boot_drive_status}${reset} at ${boot_info[4]}%% capacity (${boot_info[3]} free)\n"
printf "${bold}${orange}critically full${reset} "
# Tell them if it is at an acceptable percentage
else
printf "${bold}${green}healthy${reset} "
fi
# Display percentage used and available space left
printf "at ${boot_info[4]}%% capacity (${boot_info[3]} free)\n"
# For each kernel that was found via dpkg # For each kernel that was found via dpkg
current_kernel_passed=false current_kernel_passed=false
for kernel in $kernels for kernel in $kernels
@@ -433,12 +443,19 @@ pve_kernel_clean() {
# Function to check for updates # Function to check for updates
check_for_update() { check_for_update() {
if [ "$check_for_updates" == "true" ] && [ "$force_purge" == "false" ]; then if [ "$check_for_updates" == "true" ] && [ "$force_purge" == "false" ]; then
local remote_version=$(curl -s -m 10 https://raw.githubusercontent.com/jordanhillis/pvekclean/master/version.txt || echo "") # Get latest version number
local remote_version=$(curl -s -m 10 https://raw.githubusercontent.com/jordanhillis/pvekclean/master/version.txt | tr -d '\n' || echo "")
# Unable to fetch remote version, so just skip the update check # Unable to fetch remote version, so just skip the update check
if [ -z "$remote_version" ]; then if [ -z "$remote_version" ]; then
printf "${bold}[*]${reset} Failed to check for updates. Skipping update check.\n" printf "${bold}[*]${reset} Failed to check for updates. Skipping update check.\n"
return return
fi fi
# Validate the remote_version format using a regex
if [[ ! "$remote_version" =~ ^[0-9]+(\.[0-9]+)*$ ]]; then
printf "${bold}[*]${reset} Invalid remote version format: ${bold}${orange}$remote_version${reset}. Skipping update check.\n"
return
fi
# If version isn't the same
if [ "$remote_version" != "$version" ]; then if [ "$remote_version" != "$version" ]; then
printf "*** A new version $remote_version is available! ***\n" printf "*** A new version $remote_version is available! ***\n"
printf "${bold}[*]${reset} Do you want to update? [y/N] " printf "${bold}[*]${reset} Do you want to update? [y/N] "