#!/usr/bin/env bash function header_info { cat <<"EOF" __________ __ __ / ____/ __ \/ / / / / / / /_/ / / / / / /___/ ____/ /_/ / \____/_/ \____/ Scaling Governors EOF } clear header_info set -e while true; do read -p "View CPU Scaling Governors. Proceed(y/n)?" yn case $yn in [Yy]*) break ;; [Nn]*) exit ;; *) echo "Please answer yes or no." ;; esac done clear show_menu() { CL=$(echo "\033[m") GN=$(echo "\033[32m") BL=$(echo "\033[36m") YW=$(echo "\033[33m") fgred=$(echo "\033[31m") header_info CK=$(uname -r) IP=$(hostname -I) # MAC=$(cat /sys/class/net/eno1/address) ACSG=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors) CCSG=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor) echo -e "${YW}Proxmox IP ${BL}${IP}${CL}" echo -e "${YW}MAC Address ${BL}${MAC}${CL}" echo -e "${YW}Current Kernel ${BL}${CK}${CL}" echo -e "\n${YW}Available CPU Scaling Governors ${BL}${ACSG}${CL}" echo -e "\n${YW}Current CPU Scaling Governor ${BL}${CCSG}${CL}" printf "\n ${fgred}Only Select Available CPU Scaling Governors From Above${CL}\n \n" printf "${BL}**${YW} 1)${GN} Switch to ${BL}conservative${CL}${GN} CPU Scaling Governor ${CL}\n" printf "${BL}**${YW} 2)${GN} Switch to ${BL}ondemand${CL}${GN} CPU Scaling Governor ${CL}\n" printf "${BL}**${YW} 3)${GN} Switch to ${BL}userspace${CL}${GN} CPU Scaling Governor ${CL}\n" printf "${BL}**${YW} 4)${GN} Switch to ${BL}powersave${CL}${GN} CPU Scaling Governor ${CL}\n" printf "${BL}**${YW} 5)${GN} Switch to ${BL}performance${CL}${GN} CPU Scaling Governor ${CL}\n" printf "${BL}**${YW} 6)${GN} Switch to ${BL}schedutil${CL}${GN} CPU Scaling Governor ${CL}\n" printf "\n ${fgred}NOTE: Settings return to default after reboot${CL}\n" printf "\n Please choose an option from the menu and press [ENTER] or ${fgred}x${CL} to exit." read opt } clear show_menu while [ "$opt" != "" ]; do if [ "$opt" = "" ]; then exit else case $opt in 1) echo "conservative" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; 2) echo "ondemand" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; 3) echo "userspace" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; 4) echo "powersave" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; 5) echo "performance" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; 6) echo "schedutil" | tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor clear show_menu ;; x) exit ;; \n) exit ;; *) clear show_menu ;; esac fi done