[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: awk Script



am 18.05.13 13:33 schrieb Martin Klaiber <martinkl@zedat.fu-berlin.de>:

Hallo Martin und danke

Jim Knuth <jk@jkart.de> wrote:

Hallo, ich hab hier dieses Script, dass auch nen prima Job macht.

Das script hängt an die sieben Einträge der /etc/passwd weitere drei
an. Ist das so beabsichtigt?

nein. Erzeugt erstmal eine neue mit dem Format

web16p10:x:1203:5000::/home/mail/web16p10::userdb_mail=maildir:~/Maildir userdb_quota_rule=*:bytes=500M

Das ist User, uid,gid,Maildir home und Quota

warum Du dann das passwd-Format benutzt. Oder erwartet dovecot das?

ja, zur Quota Ermittlung

#!/bin/bash

awk 'BEGIN { FS = OFS = ":"; }
      $1 ~ /^web[0-9]+p[0-9]+$/ {
          $7 = ":userdb_mail=maildir:~/Maildir
userdb_quota_rule=*:bytes=1G";
          print;
      }' /etc/passwd >  /etc/dovecot/quota

      sleep 2
      cp /etc/dovecot/passwd.quota /etc/dovecot/pw.quota.backup
      sleep 2
      cp /etc/dovecot/quota /etc/dovecot/passwd.quota

Wozu brauchst Du die "sleep 2"-Befehle? Normalerweise sollte die
Bearbeitung des nächsten Befehls erst starten, wenn der vorherige
beendet ist.

sicher, hab ich "bloss so" reingebaut. Kann sicher raus ;)


Ich würde das gern automatisieren, d.h. wenn sich bei der
/etc/passwd was ändert, das gleich mit nem Cronjob in die
Datei /etc/dovecot/quota usw. schreiben.

Mit find -cmin +n kannst Du feststellen, ob eine Datei vor n+ Minuten
geändert wurde.

Aber so, dass das vorherige erhalten bleibt und nur die
Neuen Einträge/User in der passwd Datei in die passwd.quota
dazu kommen.

Wenn Einträge doppelt vorhanden sein dürfen, einfach den letzten
Befehl ersetzen durch

    cat /etc/dovecot/quota >> /etc/dovecot/passwd.quota

Wenn Einträge nur einfach vorhanden sein sollen und die Reihenfolge
keine Rolle spielt, einfach die passwd.quota durch sort -u filtern.

Wenn die ursprüngliche Reihenfolge erhalten bleiben muss und nichts
doppelt vorhanden sein soll, dann musst Du erst mit diff die Differenz
der Dateien bilden und das dann anhängen.

Was ist, wenn Einträge in /etc/passwd entfernt werden, müssen die dann
auch aus der passwd.quota entfernt werden?

das ist eine gute Frage, aber irrelevant. Dovecot wird ja dann den
nicht mehr vorhanden User ignorieren

Naja. Ich benutze dovecot nicht und kann nur raten, dass es vielleicht
darum gehen soll, dovecot die quotas der einzelnen user mitzuteilen?

ja, stimmt. S.o.

Gruß, Martin




--
Mit freundlichen Grüßen,
with kind regards,
Jim Knuth
---------
“Jesus wurde gekreuzigt, weil er bemerkt wurde.
Deswegen verschwinde ich häufig von der Bildfläche.”
Bob Dylan


Reply to: