109 lines
3.3 KiB
Bash
109 lines
3.3 KiB
Bash
#!/bin/bash
|
|
|
|
# =================================
|
|
# POST-INSTALL TOOLBOX
|
|
# =================================
|
|
|
|
# Farben
|
|
RED="\033[31m"
|
|
GREEN="\033[32m"
|
|
YELLOW="\033[33m"
|
|
BLUE="\033[34m"
|
|
CYAN="\033[36m"
|
|
BOLD="\033[1m"
|
|
RESET="\033[0m"
|
|
|
|
# Einrückung vom linken Rand
|
|
INDENT=" " # 6 Leerzeichen
|
|
|
|
# Prüfen, ob Root
|
|
if [ "$EUID" -ne 0 ]; then
|
|
echo -e "${RED}Bitte als Root ausführen (sudo)${RESET}"
|
|
exit 1
|
|
fi
|
|
|
|
# Skripte (Name -> URL)
|
|
declare -A SCRIPTS
|
|
SCRIPTS["Host & SSD Seriennummern"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/get_sn.sh"
|
|
SCRIPTS["Set PVE-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pve.sh"
|
|
SCRIPTS["Set PBS-Mail"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/setup-email-pbs.sh"
|
|
SCRIPTS["Set CPU Scaling Governor"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/scaling-governor.sh"
|
|
SCRIPTS["Intel e1000e Offload Fix"]="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/tools/pve/nic-offloading-fix.sh"
|
|
SCRIPTS["Set PVE Update Repos"]="https://gitea.vmd55888.de/manuel.maier/pve-pbs-setup/raw/branch/main/set_repos.sh"
|
|
|
|
|
|
|
|
# Reihenfolge festlegen
|
|
ORDER=(
|
|
"Host & SSD Seriennummern"
|
|
"Set PVE-Mail"
|
|
"Set PBS-Mail"
|
|
"Set CPU Scaling Governor"
|
|
"Intel e1000e Offload Fix"
|
|
"Set PVE Update Repos"
|
|
)
|
|
|
|
# Funktion für Header
|
|
print_header() {
|
|
clear
|
|
echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}"
|
|
echo -e "${CYAN}${BOLD}${INDENT} POST-INSTALL TOOLBOX ${RESET}"
|
|
echo -e "${CYAN}${BOLD}${INDENT}====================================${RESET}"
|
|
}
|
|
|
|
# Menü starten
|
|
while true; do
|
|
print_header
|
|
echo -e "\n${YELLOW}${INDENT}Wähle ein Script zum Ausführen:${RESET}\n"
|
|
|
|
# Skripte nummerieren in der festen Reihenfolge
|
|
i=1
|
|
declare -A INDEX_MAP
|
|
for key in "${ORDER[@]}"; do
|
|
echo -e "${INDENT}${RED}$i)${RESET} $key"
|
|
INDEX_MAP[$i]="$key"
|
|
((i++))
|
|
done
|
|
echo -e "${INDENT}${RED}0) Beenden${RESET}\n"
|
|
echo -ne "${INDENT}Auswahl: "
|
|
read -r choice
|
|
|
|
# Beenden
|
|
if [ "$choice" == "0" ]; then
|
|
echo -e "${GREEN}${INDENT}Bye! 👋${RESET}"
|
|
exit 0
|
|
fi
|
|
|
|
# Prüfen ob gültig
|
|
if [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -lt "$i" ]; then
|
|
key="${INDEX_MAP[$choice]}"
|
|
url="${SCRIPTS[$key]}"
|
|
echo -e "\n${CYAN}${INDENT}------------------------------------${RESET}"
|
|
echo -e "${GREEN}${INDENT}Lade Script: ${BOLD}$key${RESET}"
|
|
echo -e "${YELLOW}${INDENT}Von: $url${RESET}"
|
|
echo -e "${CYAN}${INDENT}------------------------------------${RESET}\n"
|
|
|
|
# Temporäre Datei
|
|
tmpfile=$(mktemp)
|
|
curl -sSL "$url" -o "$tmpfile"
|
|
|
|
if [ ! -s "$tmpfile" ]; then
|
|
echo -e "${RED}${INDENT}Fehler beim Download!${RESET}"
|
|
rm -f "$tmpfile"
|
|
read -r -p "${INDENT}Enter drücken für Menü..."
|
|
continue
|
|
fi
|
|
|
|
# Script ausführen
|
|
bash "$tmpfile"
|
|
rm -f "$tmpfile"
|
|
|
|
echo -e "\n${CYAN}${INDENT}------------------------------------${RESET}"
|
|
echo -e "${GREEN}${INDENT}Fertig!${RESET} Drücke Enter für Menü..."
|
|
read -r
|
|
else
|
|
echo -e "${RED}${INDENT}Ungültige Auswahl! Bitte erneut versuchen.${RESET}"
|
|
sleep 1
|
|
fi
|
|
done
|