mirror of https://github.com/Zelo72/rpi
2020.05.07-22:09:40
This commit is contained in:
parent
dd4f6de09d
commit
cae2fdca4f
|
@ -2,11 +2,12 @@
|
||||||
|
|
||||||
# Script: updatePihole.sh - https://github.com/Zelo72/rpi (/pihole/)
|
# Script: updatePihole.sh - https://github.com/Zelo72/rpi (/pihole/)
|
||||||
#
|
#
|
||||||
# Beschreibung: Das Script aktualisiert bei jedem Lauf die Pi-hole Gravity (gravity.list) auf Basis der in Pi-hole
|
# Beschreibung: Das Script aktualisiert bei jedem Lauf die Pi-hole Gravity auf Basis der in Pi-hole
|
||||||
# konfigurierten Blocklisten (adlists.list). Zusaetzlich werden, wenn das Script an einem Sonntag ausgefuehrt
|
# konfigurierten Blocklisten. Zusaetzlich werden, wenn das Script an einem Sonntag ausgefuehrt
|
||||||
# wird, die Raspberry Pakete und die Pi-hole Software selbst aktualisiert sofern ein Update vorliegt.
|
# wird, Raspberry Paketupdates simuliert.
|
||||||
# Bei Bedarf wird ein Gravity-Update Bericht als Mail versendet. Dieser beinhaltet neben einem Pi-Hole
|
# Bei Bedarf wird ein Gravity-Update Bericht als Mail versendet. Dieser beinhaltet neben einem Pi-Hole
|
||||||
# Gesundheitstatus auch die Statistik für das Pi-Hole und Gravity Update.
|
# Gesundheitstatus auch die Statistik für das Pi-Hole und Gravity Update.
|
||||||
|
# Das Script ist mit Pi-hole 4.x und 5.x kompatibel.
|
||||||
#
|
#
|
||||||
# Aufruf: sudo ./updatePihole.sh name@domain.xy <-- mit Mailversand
|
# Aufruf: sudo ./updatePihole.sh name@domain.xy <-- mit Mailversand
|
||||||
# sudo ./updatePihole.sh <-- ohne Mailversand
|
# sudo ./updatePihole.sh <-- ohne Mailversand
|
||||||
|
@ -60,7 +61,9 @@
|
||||||
# - Fehler behoben: Nach waitfordns und anschliessend fehlgeschlagenem DNS-Test
|
# - Fehler behoben: Nach waitfordns und anschliessend fehlgeschlagenem DNS-Test
|
||||||
# wurde der Code im If-Zweig zum erneuten DNS-Test nicht
|
# wurde der Code im If-Zweig zum erneuten DNS-Test nicht
|
||||||
# ausgefuehrt.
|
# ausgefuehrt.
|
||||||
# 1.0.7 - [Zelo72] - Kompatiblitaet fuer Pihole 5x0
|
# 1.0.7 - [Zelo72] - Kompatiblitaet fuer Pihole 5.x
|
||||||
|
# 1.0.8 - [Zelo72] - Auf Update nur simulieren nicht automatisch durchführen umgestellt.
|
||||||
|
# Betrifft Raspberry Pakete und das Pi-hole Softwareupdate.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Prüfen ob das Script als root ausgefuehrt wird
|
# Prüfen ob das Script als root ausgefuehrt wird
|
||||||
|
@ -106,18 +109,23 @@ logStats=$logDir/updatePihole.stats.log
|
||||||
[ -f $gravityDB ] && pihole5=1 || pihole5=0
|
[ -f $gravityDB ] && pihole5=1 || pihole5=0
|
||||||
|
|
||||||
# Variablen fuer "Gesundheitsstatus": -1: Undefiniert / 0: true / >0: false
|
# Variablen fuer "Gesundheitsstatus": -1: Undefiniert / 0: true / >0: false
|
||||||
piholeUpdateStatus=-1
|
rpiUpdateStatus=-1
|
||||||
piholeGravUpdateStatus=-1
|
piholeGravUpdateStatus=-1
|
||||||
dnsTestStatus=-1
|
dnsTestStatus=-1
|
||||||
inetTestStatus=-1
|
inetTestStatus=-1
|
||||||
rebootRequired="NEIN"
|
|
||||||
|
|
||||||
# *** Hilfsfunktionen ***
|
# *** Hilfsfunktionen ***
|
||||||
|
|
||||||
status() {
|
status() {
|
||||||
case "$*" in
|
case "$*" in
|
||||||
|
-3)
|
||||||
|
echo "|> UPDATES VERFUEGBAR! <|"
|
||||||
|
;;
|
||||||
|
-2)
|
||||||
|
echo "KEINE UPDATES VERFUEGBAR"
|
||||||
|
;;
|
||||||
-1)
|
-1)
|
||||||
echo "NICHT DURCHGEFUEHRT"
|
echo "NICHT UEBERPRUEFT"
|
||||||
;;
|
;;
|
||||||
0)
|
0)
|
||||||
echo "OK"
|
echo "OK"
|
||||||
|
@ -167,33 +175,25 @@ checkinet # besteht keine Internetverbindung wird das Script mit exitcode 1 been
|
||||||
checkdns
|
checkdns
|
||||||
|
|
||||||
# Nur wenn dieses Script Sonntags am Wochentag 0 ausgeführt wird:
|
# Nur wenn dieses Script Sonntags am Wochentag 0 ausgeführt wird:
|
||||||
# die Raspberry Pakete und die Pi-hole Software selbst updaten.
|
# das Raspberry Paket Update simulieren.
|
||||||
if test "$(date "+%w")" -eq 0; then # Sonntags = Wochentag 0
|
if test "$(date "+%w")" -eq 0; then # Sonntags = Wochentag 0
|
||||||
# Raspberry Pakete updaten
|
# Raspberry Paketequellen updaten
|
||||||
writeLog "[I] Raspberry Pakete updaten ..."
|
writeLog "[I] Raspberry Paket Update simulieren ..."
|
||||||
|
echo ""
|
||||||
apt-get update
|
apt-get update
|
||||||
apt-get -y upgrade
|
echo ""
|
||||||
|
|
||||||
|
# Raspberry Paketupdate simulieren
|
||||||
|
writeLog "[I] Ermitteln ob Paketupdates vorliegen ..."
|
||||||
|
tst=$(apt-get --simulate upgrade | grep ^Inst)
|
||||||
|
[ -n "$tst" ] && rpiUpdateStatus=-3 || rpiUpdateStatus=-2
|
||||||
|
|
||||||
# Raspberry Pakete bereinigen
|
# Raspberry Pakete bereinigen
|
||||||
writeLog "[I] Raspberry Pakete bereinigen ..."
|
writeLog "[I] Raspberry Pakete bereinigen ..."
|
||||||
|
echo ""
|
||||||
apt-get -y autoremove
|
apt-get -y autoremove
|
||||||
apt-get -y clean
|
apt-get -y clean
|
||||||
|
echo ""
|
||||||
# Pi-hole updaten
|
|
||||||
writeLog "[I] Pi-hole updaten ..."
|
|
||||||
$piholeBinDir/pihole -up
|
|
||||||
piholeUpdateStatus=$?
|
|
||||||
writeLog "[I] Pi-hole Update exitcode: $piholeUpdateStatus"
|
|
||||||
|
|
||||||
# Pruefen ob durch die Updates ein Reboot erforderlich ist
|
|
||||||
writeLog "[I] Pruefe ob ein Reboot erforderlich ist ..."
|
|
||||||
if [ -f /var/run/reboot-required ]; then
|
|
||||||
writeLog "[W] REBOOT nach Update erforderlich!"
|
|
||||||
echo "*************************"
|
|
||||||
echo "R E B O O T erforderlich!"
|
|
||||||
echo "*************************"
|
|
||||||
rebootRequired="JA"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# *** Pi-hole Gravity Update ***
|
# *** Pi-hole Gravity Update ***
|
||||||
|
@ -280,16 +280,19 @@ echo ""
|
||||||
echo "Hostname: $(hostname)"
|
echo "Hostname: $(hostname)"
|
||||||
echo "RAM Nutzung: $(awk '/^Mem/ {printf("%.2f%%", 100*($2-$4-$6)/$2);}' <(free -m))"
|
echo "RAM Nutzung: $(awk '/^Mem/ {printf("%.2f%%", 100*($2-$4-$6)/$2);}' <(free -m))"
|
||||||
echo "HDD Nutzung: $(df -B1 / 2>/dev/null | awk 'END{ print $5 }')"
|
echo "HDD Nutzung: $(df -B1 / 2>/dev/null | awk 'END{ print $5 }')"
|
||||||
echo "Reboot erforderlich?: $rebootRequired"
|
echo "Paket Updates?: $(status $rpiUpdateStatus)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "# Pi-hole Info #"
|
echo "# Pi-hole Info #"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Pi-hole Status: $phStatus"
|
echo "Pi-hole Status: $phStatus"
|
||||||
echo "Internet: $(status $inetTestStatus)"
|
echo "Internet: $(status $inetTestStatus)"
|
||||||
echo "DNS-Test: $(status $dnsTestStatus)"
|
echo "DNS-Test: $(status $dnsTestStatus)"
|
||||||
echo "Update: $(status $piholeUpdateStatus)"
|
|
||||||
echo "Gravity Update: $(status $piholeGravUpdateStatus)"
|
echo "Gravity Update: $(status $piholeGravUpdateStatus)"
|
||||||
echo ""
|
echo ""
|
||||||
|
echo "# Pi-hole Update Status #"
|
||||||
|
echo ""
|
||||||
|
$piholeBinDir/pihole -up --check-only
|
||||||
|
echo ""
|
||||||
echo "# Pi-hole Statistik #"
|
echo "# Pi-hole Statistik #"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Domains Gravitylist: $(grep -Evc '^#|^$' $gravListPihole)"
|
echo "Domains Gravitylist: $(grep -Evc '^#|^$' $gravListPihole)"
|
||||||
|
|
Loading…
Reference in New Issue