Pi-hole v6 Wartung für Raspberry Pi OS (Bookworm/Trixie) mit Logging und Healthchecks.
- APT update/upgrade/autoremove/autoclean
- Pi-hole Update (
-up), Gravity (-g), optionaler FTL-Restart (--restart-ftl) - Healthchecks: Port 53,
dig, GitHub-Erreichbarkeit - Optional: Tailscale-Info, FTL-Toplisten via
sqlite3 - Performance-Dashboard & intelligente Zusammenfassung
- Lokales Backup vor Pi-hole-Änderungen
- Installer setzt automatisch einen wöchentlichen Cron (
0 4 * * 0) (idempotent) - Logs:
/var/log/pihole_maintenance_pro_<timestamp>.log
Installer:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/TimInTech/pihole-maintenance-pro/main/scripts/install.sh)"Zieht die aktuelle Version und überschreibt die vorhandene:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/TimInTech/pihole-maintenance-pro/main/scripts/install.sh)"/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/TimInTech/pihole-maintenance-pro/main/scripts/uninstall.sh)"Beide Befehle sind idempotent: Update ersetzt die installierte Datei; Uninstall entfernt Script, Logs, Temp-Daten und den Cron-Eintrag.
--no-apt– APT-Schritte (update/upgrade/autoremove/autoclean) überspringen.--no-upgrade– keinpihole -up.--no-gravity–pihole -g(Blocklisten/Gravity) überspringen.--no-dnsreload– veraltet unter v6 (No-Op).--restart-ftl– pihole-FTL am Ende neustarten (nur bei Bedarf).--backup– Backup vor Pi-hole-Operationen unter/var/backups/pihole/.--json– JSON-Ausgabe statt farbiger Zusammenfassung.
Manuell:
cd ~
wget -O pihole_maintenance_pro.sh https://raw.githubusercontent.com/TimInTech/pihole-maintenance-pro/main/pihole_maintenance_pro.sh
chmod +x pihole_maintenance_pro.sh
sudo install -m 0755 pihole_maintenance_pro.sh /usr/local/bin/pihole_maintenance_pro.shInteraktiv:
sudo /usr/local/bin/pihole_maintenance_pro.shMit Flags:
sudo /usr/local/bin/pihole_maintenance_pro.sh --no-apt --no-upgrade --no-gravity --no-dnsreloadAufgenommen auf einem Raspberry Pi mit Pi-hole Core 6.1.4, Web 6.2.1, FTL 6.2.3 – so sieht das aktuelle Dashboard + die Zusammenfassung live aus:
╔═══════════════ PERFORMANCE DASHBOARD ═══════════════╗
║ 🚀 Load: 1.81 💾 RAM: 23% 🌡 Temp: 50°C 🗄 Disk: 9% ║
╚═══════════════════════════════════════════════════════╝
════════ INTELLIGENTE ZUSAMMENFASSUNG ════════
#00 🌍 Network IP: 192.168.178.21 ✔ OK
#03 🛡 Pi-hole v6.1.4 ✔ OK
#07 🔍 Health 4 listeners ✔ OK
#08 🌐 DNS Ext 172.217.16.78 ✔ OK
#09 🏠 DNS Local 127.0.0.1 ✔ OK
#12 📊 FTL Query 24h: 141222 queries, 1% blocked ✔ OK
#13 👥 FTL Client 25 active clients ✔ OKHinweis zur Ausgabe (v5.3.2-Refresh): Die Live-Zeilen pro Schritt nutzen jetzt ein vereinheitlichtes, zeitgestempeltes Format (
[HH:MM:SS] OK|WARN|ERR …) statt✔ Erfolg/⚠ Warnung. Das oben gezeigte Dashboard und die Zusammenfassung bleiben unverändert.SIGINT/SIGTERM(Strg-C) erzeugen die Zusammenfassung und räumen das Temp-Verzeichnis nun genau einmal auf. Alle Flags, JSON-Ausgabe und Steps sind identisch.
Der reale Lauf bestätigt außerdem:
- Backups werden vor Pi-hole-Wartung erstellt (z. B.
/etc/pihole/backup_20251025_100315,/etc/pihole/backup_20251025_100337) - Der Installer setzt automatisch den empfohlenen Cron:
0 4 * * 0 /usr/local/bin/pihole_maintenance_pro.sh >>/var/log/pihole_maint_cron.log 2>&1 - Security-Block (Steps 20–26) und Healthchecks (Steps 07–10) laufen ohne Warnungen durch
Empfohlene Cronjobs:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
*/30 * * * * /usr/local/bin/pihole_api_healthcheck.sh >> /var/log/pihole_healthcheck.log 2>&1
30 3 * * * /usr/local/bin/pihole_maintenance_pro.sh >> /var/log/pihole_maintenance_pro.log 2>&1Trixie/Cron nutzt einen reduzierten PATH. Mit vollem PATH laufen beide Skripte zuverlässig. Der Installer setzt den wöchentlichen Cron jetzt idempotent.
setupVars.confentfällt- Konfiguration in
/etc/pihole/pihole.toml - API unter
/api(nicht/api.php) - Authentifizierung mittels Session:
POST /api/auth→sid, danach HeaderX-FTL-SID - Healthcheck (
tools/pihole_api_healthcheck.sh) nutztPIHOLE_API_URLund optionalPIHOLE_PASSWORDzum Login - Unbound ist optional
-
sqlite3für Top-Listen:sudo apt update && sudo apt install -y sqlite3
-
Locale-Warnungen:
echo -e "en_GB.UTF-8 UTF-8\nde_DE.UTF-8 UTF-8" | sudo tee /etc/locale.gen >/dev/null sudo locale-gen && sudo update-locale LANG=de_DE.UTF-8 LC_ALL=de_DE.UTF-8
-
Hinweis
linux-image-rpi-v8auf Pi 3B: ignorierbar.
MIT. Siehe LICENSE.
Zuletzt aktualisiert: 2025-10-10 • Version: 5.3.2
Wenn dir dieses Projekt hilft, kannst du es hier unterstützen: buymeacoffee.com/timintech