60 lines
1.7 KiB
Bash
60 lines
1.7 KiB
Bash
#!/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}" |