PiHole5-Frage zum Domain management [gelöst mit sqlite3-Script]

Moin,
ich habe in der Blacklist ein paar Hundert Einträge.

Auf der Seite Group Management - Domains steht überall als Kommentar "Migrated from /etc/pihole/blacklist.txt" und als Gruppe "Default" drin.

Gibt es eine Möglichkeit, bei allen Einträgen direkt "All selected" einzutragen?

Das händisch zu machen, wäre eine Strafarbeit.

Es ist zwar ebenfalls Arbeit, aber ich würde mir wohl aus diesen Einträgen eine eigene Adlist erstellen.
Das vereinfacht zumindest zukünftig die Verwaltung.

Ja, gibt es. Geht per direktem sqlite Befehl. Ich kann dir einen zusammenstellen, bin aber noch nicht ganz sicher, was genau du willst. Überall wo jetzt als Kommentar "migrated..." steht soll dann der Kommentar "All selected" stehen. Also einfach den Kommentar ändern ohne an der Gruppenzugehörigkeit was zu ändern?

Danke für das Angebot mit dem sqlite-Befehl.
Ich würde gerne den Kommentar löschen und die Gruppenzugehörigkeit auf alle 6 vorhandenen ändern.

Nur, wenn alle für alle Gruppen identisch sein sollen. Wird aber bestimmt Unterschiede geben und ich kann -z.B. für Updates- einzelne Einträge temporär deaktivieren.

Ich habe deine Absicht falsch interpretiert.

Ich brauche zuerst deine Gruppen-IDs, deshalb im Terminal mal bitte folgendes ausführen.

sqlite3 /etc/pihole/gravity.db "select * from 'group';"
0|0|Default|1589397685|1590230720|The default group
1|1|A1|1589481682|1589481682|
2|1|J1|1589481689|1589481689|
3|1|K1|1589481693|1589481693|
4|1|A2|1589481697|1589481697|
5|1|H1|1589481702|1589481702|

Besser ohne preformat

Du hast default disabled. Sollen die Einträge der "Blacklist" trotzdem auch zur Gruppe default hinzugefügt werden?

Auf der Oberfläche ist der schnellste Weg "All" anzuklicken. Da die Gruppe deaktiviert ist, muss es nicht sein.

Ok, los gehts (quick and dirty, sollte aber funktionieren). Das Skript fügt alle "Blacklist exakt" Einträge in alle Gruppen ein.

Zuerst Pihole stoppen:

sudo service pihole-FTL stop

Sicherung der Datenbank

cp /etc/pihole/gravity.db /etc/pihole/gravity_bak.db

folgendes als Skript abspeichern und ausführbar machen (chmod +x)

#!/bin/bash

# define path to pihole's databases and temporary database
GRAVITY="/etc/pihole/gravity.db"

#define and initialize variables
declare -a domain_ids
declare -a group_ids

group_ids=(`sqlite3 $GRAVITY "select id from 'group'"`)
domain_ids=(`sqlite3 $GRAVITY "select id from domainlist where type=1"`)


for domain in "${domain_ids[@]}"; do
    for group in "${group_ids[@]}"; do
        sqlite3 $GRAVITY "insert or replace into domainlist_by_group(domainlist_id, group_id) values ($domain, $group);"
    done
done

Dann das Skript als root ausführen und anschließend noch die Kommentare löschen

sudo sqlite3 /etc/pihole/gravity.db "Update domainlist set comment=NULL where comment='Migrated from /etc/pihole/blacklist.txt';"

Anschließend pihole wieder starten und schauen, ob es geklappt hat.

sudo service pihole-FTL start

Erstmal vielen Dank für Dein Script und die Anleitung. Lies sich gut umsetzen.

Leider zeigt die Seite "Domain management" nicht die Gruppenzugehörigkeit an.

Habe auf einer Kopie der Datenbank bei einem Eintrag, den ich manuell für alle Gruppen aktiviert hatte, eine wieder rausgenommen. Auch das zeigt die Weboberfläche nicht an.

Anscheinend werden die Daten irgendwo noch persistiert.

Schade, werde mich vermutlich mal durchklicken müssen.

Schade, bei mir hat's geklappt. Gab es denn irgendeine Fehlermeldung?
Sind wenigstens die Kommentare weg?

Leider nein

Ja

Habe gestern -siehe zweiter Thread von mir wegen iPad-Problemen- die gravity.db auf einen Backup zurückgesetzt. Die DB war zerschossen.

Heute alles neu gemacht und es funktioniert jetzt. Auch die ganzen Domänen sind korrekt zugeordnet.

Danke Dir.

Sehr schön.

P.S. Du brauchst übrigens nicht in den Titel schreiben, dass etwas gelöst ist, sondern markierst einfach die Antwort, die am Besten passt als Lösung ("Solution")