#!/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 /usr/sbin/pct list | awk '/^[0-9]/ {print \$1}' | while read ct; do /usr/sbin/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}"