Postalias: warning: /etc/aliases.db: duplicate entry: "teachers"

Hi.
Gerade habe ich mal wieder ein import_workstations auf unserem 6.1 Server laufen lassen. Nachdem ich die Meldungen nun längere Zeit ignoriert habe, wäre ich nun doch an einer Lösung interessiert, denn mittlerweile taucht der Eintrag OFT auf und kostet merklich mehr Zeit:

12:41/0 server ~/linbo # import_workstations               
 #####################################################################
Starting import workstations session at Mo 2. Jan 12:42:00 CET 2017
Backing up /etc/linuxmuster/workstations ... Ok!
Checking workstation data ... Ok!
Checking subnet data.
 * Subnet data are Ok!
Restoring acls for room groups on /home/share ...
Success!
Sophomorix syncs accounts (may take a while):
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
rmdir: konnte »/home/workstations/switch“ nicht entfernen: Datei oder Verzeichnis nicht gefunden
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
Killing examaccounts:
Killing the following List of users: vm-knoppix

Ab dann läuft alles normal. Schaut man in die Datei /etc/aliases (OHNE .db) erscheinen dort tatsächlich die Einträge doppelt, und zwar in dieser Form:

 ### Mailaliases for adminclass teachers 
(alle Lehrernamen + Kürzel)
(Danach nochmal das gleiche mit Kommentarzeichen davor.)
.
Anschließend:
 ### Mailaliases for adminclass teachers 
(alle Kürzel)
(Dieser Eintrag taucht zweimal auf.)

ich habe die Doppelungen schon mehrfach aus der Datei gelöscht, doch bei jedem import_workstations werden sie dort neu angelegt, so dass ich von einem Bug ausgehe? Sind auch andere davon betroffen?

… noch ein Nachtrag. Ich weiß nicht, ob das miteinander zusammenhängt, ob ob’s mir jetzt gerade erst zufällig aufgefallen ist: Kann es sein, dass alte Verzeichnisse unter /home/workstations nicht gelöscht werden, wenn sich Rechnernamen bzw ganze Linbo-Gruppen geändert haben? Ich habe hier definitiv alte Einträge … gibt es evtl einen sophomorix-Befehl zum Aufräumen?

Ich antworte mir mal weiter selbst …
also ein sudo newaliases baut die DB neu auf … danach ist die Meldung zunächst weg.

Die andere Sache bleibt aber merkwürdig: Unter /home/workstations habe ich defintiv alte Einträge, die nicht mehr gebraucht werden, die aber auch nicht gelöscht werden!

Eigentlich sollte laut manual der Befehl sophomorix-workstation --sync-accounts (wie auch von import_workstations aufgerufen) die Verzeichnisse synchron halten, aber das wird hier offenbar nicht gemacht. Kann das an falschen Rechten liegen? (Hier: drwxr-x--t root teachers)

Ich habe mittlerweile festgestellt, dass der Befehl

sophomorix-class --class=teachers --maillist --mailalias

folgedendes Ergebnis liefert:

 #### /usr/sbin/sophomorix-class started ...                               ####
 #### NOT setting quota (nothing quota related changed)                    ####
 #### Creating lock in /var/lib/sophomorix/lock/sophomorix.lock            ####
 #### /usr/sbin/sophomorix-mail started ...                                ####
 #### sophomorix-mail is creating Mail-Aliases/Lists                       ####
   Generating mailaliases for adminclass teachers
   Generating mailaliases for adminclass teachers
   Generating mailinglist for adminclass teachers
   Generating mailinglist for adminclass teachers
Running /usr/bin/newaliases ... postalias: warning: /etc/aliases.db: duplicate entry: "teachers"
done!
 #### Removing lock in /var/lib/sophomorix/lock/sophomorix.lock            ####
 #### /usr/sbin/sophomorix-mail terminated regularly                       ####
 #### /usr/sbin/sophomorix-class terminated regularly                      ####

Danach habe ich die Doppelungen in der Datei /etc/aliases wieder drin … was läuft da schief?

Das Problem ist gelöst. Nach längerer Suche stellte sich heraus, dass in unserer Postgres-DB ein Fehler vorlag und die Einträge unter

wie auch unter

größtenteils doppelt vorkamen (mit identischer ID und identischem Zeitstempel). Man kann also nicht einfach die Duplikate löschen, sondern muss etwas tiefer in die Trickkiste greifen. Mit Rüdigers und Yanniks Hilfe ist schon vor zwei Jahren ein ähnliches Problem gelöst worden und jetzt konnte auch dieses Problem mit den richtigen psql-Befehlen (hoffentlich) gelöst werden. Ich poste die Befehle hier, damit das Wissen nicht verloren geht; auch wenn das alte Forum abgestellt wird. (Vielleicht wäre sogar eine Kategorie “Tipps & Tricks” hier sinnvoller und schneller angelegt als im Wiki?)

Zunächst:

psql -U ldap ldap

Vorlage von Yannik:


    CREATE TABLE table_new as (select distinct * from table);
        DELETE FROM table;
        INSERT INTO table (select * from table_new);
        DROP TABLE table_new;

unsere abgesetzten Befehle:

        select * from class_details order by id;
        select row_number() over(), *  from class_details order by id;
        CREATE TABLE class_details_new as (select distinct * from
class_details);
        select * from class_details_new order by id;
        select * from class_details order by id;
        CREATE TABLE class_details_bak as (select * from class_details);
        delete from class_details;
        INSERT INTO class_details (select * from class_details_new);
        select * from class_details order by id;
        select * from groups order by gid;

Die IDs von alten Einträgen (die es in der workstations-Datei definitiv nicht mehr gibt!) notiert und auf diese Weise gelöscht (bei uns waren das vier Gruppen mit den IDs 199, 216, 217, 281):

        delete  from class_details where id=199;
        delete  from class_details where id=281;
        delete  from class_details where id=216;
        delete  from class_details where id=217;

sowie:
        delete  from groups where id=199;
        delete  from groups where id=281;
        delete  from groups where id=216;
        delete  from groups where id=217;

Anschließend noch in einer weiteren Tabelle nachgesehen und auch da die alten Einträge auf diese Weise gelöscht:

select * from samba_group_mapping order by displayname;
delete  from samba_group_mapping where id=199;
delete  from samba_group_mapping where id=281;
delete  from samba_group_mapping where id=216;
delete  from samba_group_mapping where id=217;

sophomorix-room und sophomorix-class liefern jetzt wieder alle Einträge einfach!
Das Problem ist hoffentlich gelöst Damit hat sich hoffentlich gleichzeitig auch die Sache mit den Doppelungen unter /etc/aliases erledigt, denn die Datei wird auch von anderen sophomorix-Tools neu angelegt.