mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-04 04:38:02 +00:00 
			
		
		
		
	check
This commit is contained in:
		@@ -310,6 +310,8 @@ clean_var_tmp() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
kernel_files=()         # temp
 | 
					kernel_files=()         # temp
 | 
				
			||||||
lib_module_dirs=()      # temp
 | 
					lib_module_dirs=()      # temp
 | 
				
			||||||
 | 
					declare -a kernel_sort_names
 | 
				
			||||||
 | 
					declare -a libmod_sort_names
 | 
				
			||||||
removable_kernels=()    # these are for CT kernels
 | 
					removable_kernels=()    # these are for CT kernels
 | 
				
			||||||
removable_libmod_dirs=() # these are for CT kernels
 | 
					removable_libmod_dirs=() # these are for CT kernels
 | 
				
			||||||
removable_packages=()   # these are for Fedora kernels
 | 
					removable_packages=()   # these are for Fedora kernels
 | 
				
			||||||
@@ -317,6 +319,8 @@ survey_kernel_files() {
 | 
				
			|||||||
    removable_kernels=()
 | 
					    removable_kernels=()
 | 
				
			||||||
    removable_libmod_dirs=()
 | 
					    removable_libmod_dirs=()
 | 
				
			||||||
    removable_packages=()
 | 
					    removable_packages=()
 | 
				
			||||||
 | 
					    kernel_sort_names=()
 | 
				
			||||||
 | 
					    libmod_sort_names=()
 | 
				
			||||||
    note "Surveying Kernel files"
 | 
					    note "Surveying Kernel files"
 | 
				
			||||||
    mapfile -t kernel_files < <(find /boot -maxdepth 1 -type f -a \( \
 | 
					    mapfile -t kernel_files < <(find /boot -maxdepth 1 -type f -a \( \
 | 
				
			||||||
        -iname "System*" -o -iname "init*img" -o -iname "vm*" -o -iname "ct*" \) \
 | 
					        -iname "System*" -o -iname "init*img" -o -iname "vm*" -o -iname "ct*" \) \
 | 
				
			||||||
@@ -324,9 +328,9 @@ survey_kernel_files() {
 | 
				
			|||||||
    mapfile -t lib_module_dirs < <(find /lib/modules -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort)
 | 
					    mapfile -t lib_module_dirs < <(find /lib/modules -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sort)
 | 
				
			||||||
    local booted=`uname -r`
 | 
					    local booted=`uname -r`
 | 
				
			||||||
    local could_remove=()
 | 
					    local could_remove=()
 | 
				
			||||||
 | 
					    local g
 | 
				
			||||||
    debug "** You are running kernel $booted **"
 | 
					    debug "** You are running kernel $booted **"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    note "CT kernels elegible for removal: "
 | 
					 | 
				
			||||||
    for f in "${kernel_files[@]}"; do
 | 
					    for f in "${kernel_files[@]}"; do
 | 
				
			||||||
        [[ $f = /boot/init* ]] || continue
 | 
					        [[ $f = /boot/init* ]] || continue
 | 
				
			||||||
        [[ $f =~ *.fc*.x86_64 ]] || continue
 | 
					        [[ $f =~ *.fc*.x86_64 ]] || continue
 | 
				
			||||||
@@ -335,38 +339,51 @@ survey_kernel_files() {
 | 
				
			|||||||
        #f=${f%.fc*}
 | 
					        #f=${f%.fc*}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if [[ $f =~ $booted ]]; then
 | 
					        if [[ $f =~ $booted ]]; then
 | 
				
			||||||
            debug "ignoring $f"
 | 
					            debug "ignoring CT kernel $f"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
 | 
					            g=$( kernel_to_relnum $f )
 | 
				
			||||||
 | 
					            # debug "f[$f] g[$g]"
 | 
				
			||||||
 | 
					            kernel_sort_names[$g]="$f"
 | 
				
			||||||
            removable_kernels+=($f)
 | 
					            removable_kernels+=($f)
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
    if (( $verbose > 0 )); then
 | 
					    if (( $verbose > 0 )) && (( ${#kernel_sort_names[@]} > 0 )); then
 | 
				
			||||||
        printf "    [%s]\n" "${removable_kernels[@]}"
 | 
					        echo "Removable CT kernels:"
 | 
				
			||||||
 | 
					        while read g; do
 | 
				
			||||||
 | 
					            printf "    [%s]\n" "${kernel_sort_names[$g]}"
 | 
				
			||||||
 | 
					        done < <(echo  "${!kernel_sort_names[@]}" | sort | head -n -1)
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    note "Module directories elegible for removal: "
 | 
					    note "Module directories elegible for removal: "
 | 
				
			||||||
    for f in "${lib_module_dirs[@]}"; do
 | 
					    for f in "${lib_module_dirs[@]}"; do
 | 
				
			||||||
        echo "[$f]"
 | 
					        # echo "     [$f]"
 | 
				
			||||||
        f=${f#/lib/modules/}
 | 
					        f=${f#/lib/modules/}
 | 
				
			||||||
        #f=${f%.img}
 | 
					        #f=${f%.img}
 | 
				
			||||||
        #f=${f%.fc*}
 | 
					        #f=${f%.fc*}
 | 
				
			||||||
        if [[ $f =~ $booted ]]; then
 | 
					        if [[ $f =~ $booted ]] || [[ $f =~ *.fc*.x86_64 ]]; then
 | 
				
			||||||
            debug "ignoring $f"
 | 
					            debug "Ignoring booted or Fedora module directory $f"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            removable_libmod_dirs+=($f)
 | 
					            g=$( kernel_to_relnum $f )
 | 
				
			||||||
 | 
					            # debug "f[$f] g[$g] booted [$booted]"
 | 
				
			||||||
 | 
					            # removable_libmod_dirs+=($f)
 | 
				
			||||||
 | 
					            libmod_sort_names[$g]="$f"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
    if (( $verbose > 0 )); then
 | 
					    if (( $verbose > 0 )) && (( ${#libmod_sort_names[@]} > 0 )); then
 | 
				
			||||||
        printf "    [%s]\n" "${removable_libmod_dirs[@]}"
 | 
					        echo "Removable libmod dirs: "
 | 
				
			||||||
 | 
					        while read f; do
 | 
				
			||||||
 | 
					            if [[ $f =~ $booted ]]; then
 | 
				
			||||||
 | 
					                debug "Ignoring booted $booted module directory $f"
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					            removable_libmod_dirs+=(${libmod_sort_names[$f]})
 | 
				
			||||||
 | 
					            echo "    [${libmod_sort_names[$f]}]"
 | 
				
			||||||
 | 
					        done < <( printf "%s\n" "${!libmod_sort_names[@]}" | sort | head -n -1)
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    local boot_image_sz=$(du -hc "${kernel_files[@]}" | awk '/total/{print $1}')
 | 
					    local boot_image_sz=$(du -hc "${kernel_files[@]}" | awk '/total/{print $1}')
 | 
				
			||||||
    local lib_dir_sz=$(du -hc "${lib_module_dirs[@]}" | awk '/total/{print $1}')
 | 
					    local lib_dir_sz=$(du -hc "${lib_module_dirs[@]}" | awk '/total/{print $1}')
 | 
				
			||||||
    totals[b]="kernels: $boot_image_sz, modules: $lib_dir_sz"
 | 
					    totals[b]="kernels: $boot_image_sz, modules: $lib_dir_sz"
 | 
				
			||||||
    local booted=`uname -r`
 | 
					 | 
				
			||||||
    debug "You are running kernel $booted"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    local pkg
 | 
					    local pkg
 | 
				
			||||||
    local k_pkgs=()
 | 
					    local k_pkgs=()
 | 
				
			||||||
@@ -403,27 +420,31 @@ survey_kernel_files() {
 | 
				
			|||||||
            debug "avoiding current kernel [$kernel_series]"
 | 
					            debug "avoiding current kernel [$kernel_series]"
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
            k_series+=($kernel_series)
 | 
					            k_series+=($kernel_series)
 | 
				
			||||||
 | 
					            kernel_sort_names[$kernel_series]="$pkg"
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    done
 | 
					    done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    IFS=$'\n' k_series=($(sort <<<"${k_series[*]}" | uniq)); unset IFS
 | 
					    IFS=$'\n' k_series=($(sort <<<"${k_series[*]}" | uniq)); unset IFS
 | 
				
			||||||
    for pkg in "${k_series[@]}"; do
 | 
					    while read ser; do
 | 
				
			||||||
        debug "series $pkg"
 | 
					        # debug "series [$ser] pkg [${kernel_sort_names[$ser]}]"
 | 
				
			||||||
    done
 | 
					        removable_pkgs+=("${kernel_sort_names[$ser]}")
 | 
				
			||||||
    if (( "${#k_series[@]}" > 1 )); then
 | 
					    done < <( printf "%s\n" "${!kernel_sort_names[@]}" | sort | head -n -1)
 | 
				
			||||||
        local i=0
 | 
					
 | 
				
			||||||
        # lets try and avoid the last item assuming that is the most recent
 | 
					 | 
				
			||||||
        for i in $( seq 0 $(( ${#k_series[@]} - 2 )) ); do
 | 
					 | 
				
			||||||
            debug "item $i is ${k_series[$i]}"
 | 
					 | 
				
			||||||
        done
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    set +x
 | 
					    set +x
 | 
				
			||||||
    if (( ${#selected_k[@]} < 1 )); then
 | 
					    if (( ${#selected_k[@]} < 1 )); then
 | 
				
			||||||
        note "No kernels selected for removal"
 | 
					        note "No kernels selected for removal"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
    if (( $quiet < 1 )); then
 | 
					    if (( $quiet < 1 )); then
 | 
				
			||||||
        printf "Would remove %s\n" "${selected_k[@]}"
 | 
					        if (( ${#removable_pkgs[@]} > 0 )); then
 | 
				
			||||||
 | 
					            printf "Would remove packages %s\n" "${removable_pkgs[@]}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        if (( ${#removable_kernels[@]} > 0 )); then
 | 
				
			||||||
 | 
					            printf "Would remove CT Kernels %s\n" "${removable_kernels[@]}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					        if (( ${#removable_libmod_dirs[@]} > 0 )); then
 | 
				
			||||||
 | 
					            printf "Would remove CT modules %s\n" "${removable_libmod_dirs[@]}"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user