21x9.org

CLI Adventures: Konfigdateien ohne Kommentarzeilen

Categories: [blog]
Tags: [imported]

Im [[/nachtragliche-systemdokumentation/|letzten Post]] gab es ein paar Tipps zur nachträglichen Systemdokumentation, besser ist es natürlich die Dokumentation immer direkt durchzuführen. Hierbei sollte man sich nicht nur auf geänderte Einstellungen beschränken sondern am Besten immer die komplette Dokumentation erfassen. Kommentarzeilen können hierbei aber meist entfallen, auch der Übersichtlichkeit zuliebe. Dank grep kein Problem:

grep -v "^#" /etc/dovecot/dovecot.conf | grep -v "^$"

Zunächst entfernt grep alle Zeilen die mit einer ``# beginnen. Anschließend werden noch alle Leerzeilen aus der Ausgabe entfernt.

Hat man nun noch die Originalkonfiguration aufbewahrt kann man in der Dokumentation auch noch einmal genau auf die nötigen Anpassungen eingehen, indem man eigene und Originalkonfiguration vergleicht:

diff -B /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig

Wer einen sauberen Output bevorzugt kann folgendes Befehlskonstrukt verwenden:

diff -B /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig | grep "^>" | sed 's/> //' | grep -v "^#"

Zunächst gibt diff die geänderten Zeilen aus, grep gibt nur die neu hinzugekommenen Zeilen aus, sed entfernt die von diff eingefügten > am Zeilenanfang und zu guter letzt entfernt grep alle Kommentarzeilen.

Um es noch einfacher zu machen sollte man, wenn möglich, die originalen Konfigurationsdateien stets unangetastet lassen und lokale Konfigurationsdateien mit den angepassten Einstellungen nutzen. Dies hat auch den Vorteil dass die veränderten Einstellungen bei einem Update des Pakets nicht überschrieben werden können, bzw. man auf einen entsprechenden Abgleich von Maintainer-Fassung und eigener verzichten kann. dovecot erlaubt dies z.B. über die Zeile !include_try local.conf in der dovecot.conf.