diff --git a/enable_weekly_ct_trim.sh b/enable_weekly_ct_trim.sh new file mode 100644 index 0000000..16f03ce --- /dev/null +++ b/enable_weekly_ct_trim.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# ===================================================== +# Proxmox: Weekly LXC fstrim Cronjob Setup +# Führt jeden Sonntag um 00:30 fstrim auf allen LXCs aus +# ===================================================== + +# ---- Farben / Layout ---- +BOLD="\033[1m" +GREEN="\033[32m" +YELLOW="\033[33m" +RED="\033[31m" +CYAN="\033[36m" +RESET="\033[0m" +INDENT=" " + +CRON_JOB="30 0 * * 0 pct list | awk '/^[0-9]/ {print \$1}' | while read ct; do pct fstrim \${ct}; done" + +# ---- Root Check ---- +if [[ $EUID -ne 0 ]]; then + echo -e "${RED}${BOLD}${INDENT}Bitte als Root ausführen!${RESET}" + exit 1 +fi + +# ---- Header ---- +echo -e "${CYAN}${BOLD}${INDENT}==============================================${RESET}" +echo -e "${CYAN}${BOLD}${INDENT} Proxmox LXC fstrim Cronjob Setup ${RESET}" +echo -e "${CYAN}${BOLD}${INDENT}==============================================${RESET}" + +# ---- Prüfen ob Cronjob existiert ---- +echo -e "${INDENT}Prüfe bestehenden Cronjob..." + +if crontab -l 2>/dev/null | grep -Fq "pct fstrim"; then + echo -e "${YELLOW}${INDENT}Cronjob existiert bereits!${RESET}" + echo -e "${INDENT}Aktueller Eintrag:" + crontab -l | grep "pct fstrim" + exit 0 +fi + +# ---- Cronjob hinzufügen ---- +echo -e "${INDENT}Füge neuen Cronjob hinzu..." + +( + crontab -l 2>/dev/null + echo "$CRON_JOB" +) | crontab - + +# ---- Ergebnis prüfen ---- +echo -e "${INDENT}Überprüfe Eintrag..." +if crontab -l | grep -Fq "pct fstrim"; then + echo -e "${GREEN}${BOLD}${INDENT}✔ Cronjob erfolgreich gesetzt!${RESET}" +else + echo -e "${RED}${INDENT}Fehler beim Setzen des Cronjobs!${RESET}" + exit 1 +fi + +# ---- Ausgabe ---- +echo +echo -e "${INDENT}Ausführung: Jeden Sonntag um 00:30" +echo -e "${INDENT}Befehl:" +echo -e "${INDENT}${CRON_JOB}" \ No newline at end of file